{"id":13525632,"url":"https://github.com/bjdgyc/anylink","last_synced_at":"2025-05-14T03:10:41.143Z","repository":{"id":37417530,"uuid":"288400861","full_name":"bjdgyc/anylink","owner":"bjdgyc","description":"AnyLink是一个企业级远程办公 ssl vpn 软件，可以支持多人同时在线使用。基于 openconnect 协议开发，并且借鉴了 ocserv 的开发思路，可以完全兼容 AnyConnect 客户端。","archived":false,"fork":false,"pushed_at":"2025-04-08T03:18:21.000Z","size":3063,"stargazers_count":1784,"open_issues_count":85,"forks_count":427,"subscribers_count":39,"default_branch":"main","last_synced_at":"2025-04-10T20:55:09.402Z","etag":null,"topics":["anyconnect","enterprise","ocserv","openconnect","openvpn","sslvpn","vpn"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bjdgyc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":["https://github.com/bjdgyc/anylink/blob/main/doc/README.md"]}},"created_at":"2020-08-18T08:37:10.000Z","updated_at":"2025-04-09T15:22:03.000Z","dependencies_parsed_at":"2023-11-15T04:33:38.852Z","dependency_job_id":"16c46a56-d4c6-466d-ab89-2268ac097ab3","html_url":"https://github.com/bjdgyc/anylink","commit_stats":{"total_commits":647,"total_committers":23,"mean_commits":"28.130434782608695","dds":0.3601236476043277,"last_synced_commit":"1e237d9d2056fc01478ea57f6490b923a2b1a69b"},"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjdgyc%2Fanylink","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjdgyc%2Fanylink/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjdgyc%2Fanylink/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjdgyc%2Fanylink/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bjdgyc","download_url":"https://codeload.github.com/bjdgyc/anylink/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254059512,"owners_count":22007769,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anyconnect","enterprise","ocserv","openconnect","openvpn","sslvpn","vpn"],"created_at":"2024-08-01T06:01:20.578Z","updated_at":"2025-05-14T03:10:36.131Z","avatar_url":"https://github.com/bjdgyc.png","language":"Go","funding_links":["https://github.com/bjdgyc/anylink/blob/main/doc/README.md"],"categories":["Go","VPN"],"sub_categories":[],"readme":"# AnyLink\n\n[![Go](https://github.com/bjdgyc/anylink/workflows/Go/badge.svg?branch=main)](https://github.com/bjdgyc/anylink/actions)\n[![PkgGoDev](https://pkg.go.dev/badge/github.com/bjdgyc/anylink)](https://pkg.go.dev/github.com/bjdgyc/anylink)\n[![Go Report Card](https://goreportcard.com/badge/github.com/bjdgyc/anylink)](https://goreportcard.com/report/github.com/bjdgyc/anylink)\n[![codecov](https://codecov.io/gh/bjdgyc/anylink/graph/badge.svg?token=JTFLIIIBQ0)](https://codecov.io/gh/bjdgyc/anylink)\n![GitHub release](https://img.shields.io/github/v/release/bjdgyc/anylink)\n![GitHub downloads total)](https://img.shields.io/github/downloads/bjdgyc/anylink/total)\n![GitHub Downloads (all assets, latest release)](https://img.shields.io/github/downloads/bjdgyc/anylink/latest/total)\n[![Docker pulls)](https://img.shields.io/docker/pulls/bjdgyc/anylink.svg)](https://hub.docker.com/r/bjdgyc/anylink)\n![LICENSE](https://img.shields.io/github/license/bjdgyc/anylink)\n\nAnyLink 是一个企业级远程办公 sslvpn 的软件，可以支持多人同时在线使用。\n\n使用 AnyLink，你可以随时随地安全的访问你的内部网络。\n\nWith AnyLink, you can securely access your internal network anytime and anywhere.\n\n## Repo\n\n\u003e github: https://github.com/bjdgyc/anylink\n\n\u003e gitee: https://gitee.com/bjdgyc/anylink\n\n## Introduction\n\nAnyLink 基于 [ietf-openconnect](https://tools.ietf.org/html/draft-mavrogiannopoulos-openconnect-02)\n协议开发，并且借鉴了 [ocserv](http://ocserv.gitlab.io/www/index.html) 的开发思路，使其可以同时兼容 AnyConnect 客户端。\n\nAnyLink 使用 TLS/DTLS 进行数据加密，因此需要 RSA 或 ECC 证书，可以使用私有自签证书，可以通过 Let's Encrypt 和 TrustAsia\n申请免费的 SSL 证书。\n\nAnyLink 服务端仅在 CentOS 7、CentOS 8、Ubuntu 18、Ubuntu 20、Ubuntu 20、AnolisOS 8 测试通过，如需要安装在其他系统，需要服务端支持\ntun/tap\n功能、ip 设置命令、iptables命令。\n\n## Screenshot\n\n![online](doc/screenshot/online.jpg)\n\n## Donate\n\n\u003e 如果您觉得 anylink 对你有帮助，欢迎给我们打赏，也是帮助 anylink 更好的发展。\n\u003e\n\u003e [查看打赏列表](doc/README.md)\n\n\u003cp\u003e\n    \u003cimg src=\"doc/screenshot/wxpay2.png\" width=\"400\" /\u003e\n\u003c/p\u003e\n\n## Installation\n\n\u003e 没有编程基础的同学建议直接下载 release 包，从下面的地址下载 anylink-deploy.tar.gz\n\u003e\n\u003e https://github.com/bjdgyc/anylink/releases\n\u003e\n\u003e https://gitee.com/bjdgyc/anylink/releases\n\u003e\n\u003e 如果不会安装，可以提供有偿远程协助服务(200 CNY)。添加QQ(68492170)联系我\n\u003e\n\u003e 也可以添加QQ群 咨询群内大佬\n\u003e\n\u003e 添加QQ群①: 567510628\n\u003e\n\u003e \u003cimg src=\"doc/screenshot/qq2.jpg\" width=\"400\" /\u003e\n\n### 使用问题\n\n\u003e 对于测试环境，可以直接进行测试，需要客户端取消勾选【阻止不受信任的服务器(Block connections to untrusted servers)】\n\u003e\n\u003e 对于线上环境，尽量申请安全的https证书(跟nginx使用的pem证书类型一致)\n\u003e\n\u003e 群共享文件有相关客户端软件下载，其他版本没有测试过，不保证使用正常\n\u003e\n\u003e 其他问题 [前往查看](doc/question.md)\n\u003e\n\u003e 默认管理后台访问地址  https://host:8800 或 https://域名:8800 默认账号密码 admin 123456\n\u003e\n\u003e 首次使用，请在浏览器访问  https://域名:443   浏览器提示安全后，在客户端输入 【域名:443】 即可\n\n### 自行编译安装\n\n\u003e 需要提前安装好 docker\n\n```shell\ngit clone https://github.com/bjdgyc/anylink.git\n\n# docker编译 参考软件版本(不需要安装)\n# go 1.20.12\n# node v16.20.2\n# yarn 1.22.19\n\n\ncd anylink\n\n# 编译前端\nbash build_web.sh\n# 编译 anylink-deploy 发布文件\nbash build.sh\n\n# 注意使用root权限运行\ncd anylink-deploy\nsudo ./anylink\n\n# 默认管理后台访问地址\n# https://host:8800\n# 默认账号 密码\n# admin 123456\n\n\n```\n\n## Feature\n\n- [x] IP 分配(实现 IP、MAC 映射信息的持久化)\n- [x] TLS-TCP 通道\n- [x] DTLS-UDP 通道\n- [x] 兼容 AnyConnect\n- [x] 兼容 OpenConnect\n- [x] 基于 tun 设备的 nat 访问模式\n- [x] 基于 tun 设备的桥接访问模式\n- [x] 基于 macvtap 设备的桥接访问模式\n- [x] 支持 [proxy protocol v1\u0026v2](http://www.haproxy.org/download/2.2/doc/proxy-protocol.txt) 协议\n- [x] 用户组支持\n- [x] 用户组策略支持\n- [x] 多用户支持\n- [x] 用户策略支持\n- [x] TOTP 令牌支持\n- [x] TOTP 令牌开关\n- [x] 流量速率限制\n- [x] 后台管理界面\n- [x] 访问权限管理\n- [x] 用户活动审计功能\n- [x] IP 访问审计功能(支持多端口、连续端口)\n- [x] 域名动态拆分隧道（域名路由功能）\n- [x] radius认证支持\n- [x] LDAP认证支持\n- [x] 空闲链接超时自动断开\n- [x] 流量压缩功能\n- [x] 出口 IP 自动放行\n- [x] 支持多服务的配置区分\n- [x] 支持私有自签证书\n- [x] 支持内网域名解析(指定的域名走内网dns)\n- [x] 增加用户验证防爆功能(IP BAN)\n- [x] 支持 docker 非特权模式\n- [ ] 基于 ipvtap 设备的桥接访问模式\n\n## Config\n\n\u003e 示例配置文件内有详细的注释，根据注释填写配置即可。\n\n```shell\n# 查看帮助信息\n./anylink -h\n\n# 生成后台密码\n./anylink tool -p 123456\n\n# 生成jwt密钥\n./anylink tool -s\n\n# 查看所有配置项\n./anylink tool -d\n```\n\n\u003e 数据库配置示例\n\u003e\n\u003e 数据库表结构自动生成，无需手动导入(请赋予 DDL 权限)\n\n| db_type  | db_source                                                                                                            |\n|----------|----------------------------------------------------------------------------------------------------------------------|\n| sqlite3  | ./conf/anylink.db                                                                                                    |\n| mysql    | user:password@tcp(127.0.0.1:3306)/anylink?charset=utf8\u003cbr/\u003euser:password@tcp(127.0.0.1:3306)/anylink?charset=utf8mb4 |\n| postgres | postgres://user:password@localhost/anylink?sslmode=verify-full                                                       |\n| mssql    | sqlserver://user:password@localhost?database=anylink\u0026connection+timeout=30                                           |\n\n\u003e 示例配置文件\n\u003e\n\u003e [conf/server-sample.toml](server/conf/server-sample.toml)\n\n## Upgrade\n\n\u003e 升级前请备份配置文件`conf`目录 和 数据库，并停止服务\n\u003e\n\u003e 使用新版的 `anylink` 二进制文件替换旧版\n\u003e\n\u003e 重启服务后，即可完成升级\n\n## Setting\n\n### 依赖设置\n\n\u003e 服务端依赖安装:\n\u003e\n\u003e centos: yum install iptables iproute\n\u003e\n\u003e ubuntu: apt-get install iptables iproute2\n\n### link_mode 设置\n\n\u003e 以下参数必须设置其中之一\n\n网络模式选择，需要配置 `link_mode` 参数，如 `link_mode=\"tun\"`,`link_mode=\"macvtap\"`,`link_mode=\"tap\"(不推荐)` 等参数。\n不同的参数需要对服务器做相应的设置。\n\n建议优先选择 tun 模式，其次选择 macvtap 模式，因客户端传输的是 IP 层数据，无须进行数据转换。 tap 模式是在用户态做的链路层到\nIP 层的数据互相转换，性能会有所下降。 如果需要在虚拟机内开启 tap\n模式，请确认虚拟机的网卡开启混杂模式。\n\n#### tun 设置\n\n1. 开启服务器转发\n\n```shell\n# 新版本支持自动设置ip转发\n\n# file: /etc/sysctl.conf\nnet.ipv4.ip_forward = 1\n\n#执行如下命令\nsysctl -w net.ipv4.ip_forward=1\n\n# 查看设置是否生效\ncat /proc/sys/net/ipv4/ip_forward\n```\n\n2.1 设置 nat 转发规则(二选一)\n\n```shell\nsystemctl stop firewalld.service\nsystemctl disable firewalld.service\n\n# 新版本支持自动设置nat转发，如有其他需求可以参考下面的命令配置\n\n# 请根据服务器内网网卡替换 eth0\n# iptables -t nat -A POSTROUTING -s 192.168.90.0/24 -o eth0 -j MASQUERADE\n# 如果执行第一个命令不生效，可以继续执行下面的命令\n# iptables -A FORWARD -i eth0 -s 192.168.90.0/24 -j ACCEPT\n# 查看设置是否生效\n# iptables -nL -t nat\n```\n\n2.2 使用全局路由转发(二选一)\n\n```shell\n# 假设anylink所在服务器的内网ip: 10.1.2.10\n\n# 首先关闭nat转发功能\niptables_nat = false\n\n# 传统网络架构，在华三交换机添加以下静态路由规则\nip route-static 192.168.90.0 255.255.255.0 10.1.2.10\n# 其他品牌的交换机命令，请参考以下地址\nhttps://cloud.tencent.com/document/product/216/62007\n\n# 公有云环境下，需设置vpc下的路由表，添加以下路由策略\n目的端: 192.168.90.0/24\n下一跳类型: 云服务器\n下一跳: 10.1.2.10\n\n```\n\n3. 使用 AnyConnect 客户端连接即可\n\n#### 桥接设置\n\n1. 设置配置文件\n\n\u003e macvtap 设置相对比较简单，只需要配置相应的参数即可。\n\u003e\n\u003e 网络要求：需要网络支持 ARP 传输，可通过 ARP 宣告普通内网 IP。\n\u003e\n\u003e 网络限制：云环境下不能使用，网卡mac加白环境不能使用，802.1x认证网络不能使用\n\u003e\n\u003e 以下参数可以通过执行 `ip a` 查看\n\n\n1.1 arp_proxy\n\n```\n\n# file: /etc/sysctl.conf\nnet.ipv4.conf.all.proxy_arp = 1\n\n#执行如下命令\nsysctl -w net.ipv4.conf.all.proxy_arp=1\n\n\n配置文件修改:\n\n# 首先关闭nat转发功能\niptables_nat = false\n\n\nlink_mode = \"tun\"\n#内网主网卡名称\nipv4_master = \"eth0\"\n#以下网段需要跟ipv4_master网卡设置成一样\nipv4_cidr = \"10.1.2.0/24\"\nipv4_gateway = \"10.1.2.99\"\nipv4_start = \"10.1.2.100\"\nipv4_end = \"10.1.2.200\"\n\n```\n\n1.2 macvtap\n\n```\n\n# 命令行执行 master网卡需要打开混杂模式\nip link set dev eth0 promisc on\n\n#=====================#\n\n# 配置文件修改\n# 首先关闭nat转发功能\niptables_nat = false\n\nlink_mode = \"macvtap\"\n#内网主网卡名称\nipv4_master = \"eth0\"\n#以下网段需要跟ipv4_master网卡设置成一样\nipv4_cidr = \"10.1.2.0/24\"\nipv4_gateway = \"10.1.2.1\"\nipv4_start = \"10.1.2.100\"\nipv4_end = \"10.1.2.200\"\n```\n\n## Deploy\n\n\u003e 部署配置文件放在 `deploy` 目录下，请根据实际情况修改配置文件\n\n### Systemd\n\n1. 添加 anylink 程序\n    - 首先把 `anylink-deploy` 文件夹放入 `/usr/local/anylink-deploy`\n    - 添加执行权限 `chmod +x /usr/local/anylink-deploy/anylink`\n2. 把 `anylink.service` 脚本放入：\n    - centos: `/usr/lib/systemd/system/`\n    - ubuntu: `/lib/systemd/system/`\n3. 操作命令:\n    - 加载配置: `systemctl daemon-reload`\n    - 启动: `systemctl start anylink`\n    - 停止: `systemctl stop anylink`\n    - 开机自启: `systemctl enable anylink`\n\n### Docker Compose\n\n1. 进入 `deploy` 目录\n2. 执行脚本 `docker-compose up`\n\n### k8s\n\n1. 进入 `deploy` 目录\n2. 执行脚本 `kubectl apply -f deployment.yaml`\n\n## Docker\n\n### anylink 镜像地址\n\n对于国内用户，为提高镜像拉取体验，可以考虑拉取存放于阿里云镜像仓库的镜像，镜像名称及标签如下表所示(\n具体版本号可以查看 `version` 文件):\n\n|    支持设备/平台    |       DockerHub       |                             阿里云镜像仓库                             |\n|:-------------:|:---------------------:|:---------------------------------------------------------------:|\n| x86_64/amd64  | bjdgyc/anylink:latest |     registry.cn-hangzhou.aliyuncs.com/bjdgyc/anylink:latest     |\n| x86_64/amd64  | bjdgyc/anylink:0.13.1 |     registry.cn-hangzhou.aliyuncs.com/bjdgyc/anylink:0.13.1     | \n| armv8/aarch64 | bjdgyc/anylink:latest | registry.cn-hangzhou.aliyuncs.com/bjdgyc/anylink:arm64v8-latest | \n| armv8/aarch64 | bjdgyc/anylink:0.13.1 | registry.cn-hangzhou.aliyuncs.com/bjdgyc/anylink:arm64v8-0.13.1 | \n\n### docker 镜像源地址\n\n\u003e docker.1ms.run/bjdgyc/anylink:latest\n\u003e\n\u003e dockerhub.yydy.link:2023/bjdgyc/anylink:latest\n\n\n### 操作步骤\n\n1. 获取镜像\n   ```bash\n   # 具体tag可以从docker hub获取\n   # https://hub.docker.com/r/bjdgyc/anylink/tags\n   docker pull bjdgyc/anylink:latest\n   docker pull registry.cn-hangzhou.aliyuncs.com/bjdgyc/anylink:latest\n   ```\n\n2. 查看命令信息\n   ```bash\n   docker run -it --rm bjdgyc/anylink -h\n   ```\n\n3. 生成密码\n   ```bash\n   docker run -it --rm bjdgyc/anylink tool -p 123456\n   #Passwd:$2a$10$lCWTCcGmQdE/4Kb1wabbLelu4vY/cUwBwN64xIzvXcihFgRzUvH2a\n   ```\n\n4. 生成 jwt secret\n   ```bash\n   docker run -it --rm bjdgyc/anylink tool -s\n   #Secret:9qXoIhY01jqhWIeIluGliOS4O_rhcXGGGu422uRZ1JjZxIZmh17WwzW36woEbA\n   ```\n\n5. 查看所有配置项\n   ```bash\n   docker run -it --rm bjdgyc/anylink tool -d\n   ```\n\n6. iptables兼容设置\n   ```bash\n   # 默认 iptables 使用 nf_tables 设置转发规则,如果内核低于 4.19 版本,需要特殊配置\n   docker run -itd --name anylink --privileged \\\n      -e IPTABLES_LEGACY=on \\\n      -p 443:443 -p 8800:8800 -p 443:443/udp \\\n      --restart=always \\\n      bjdgyc/anylink\n   ```\n\n7. 启动容器\n   ```bash\n   # 默认启动\n   docker run -itd --name anylink --privileged \\\n       -p 443:443 -p 8800:8800 -p 443:443/udp \\\n       --restart=always \\\n       bjdgyc/anylink\n   \n   # 自定义配置目录\n   # 首次启动会自动创建配置文件\n   # 配置文件初始化完成后，容器会强制退出，请重新启动容器\n   docker run -itd --name anylink --privileged \\\n       -p 443:443 -p 8800:8800 -p 443:443/udp \\\n       -v /home/myconf:/app/conf \\\n       --restart=always \\\n       bjdgyc/anylink\n   \n   docker restart anylink\n   ```\n\n8. 使用自定义参数启动容器\n   ```bash\n   # 参数可以参考 ./anylink tool -d\n   # 可以使用命令行参数 或者 环境变量 配置\n   docker run -itd --name anylink --privileged \\\n       -e LINK_LOG_LEVEL=info \\\n       -p 443:443 -p 8800:8800 -p 443:443/udp \\\n       -v /home/myconf:/app/conf \\\n       --restart=always \\\n       bjdgyc/anylink \\\n       --ip_lease=1209600 # IP地址租约时长\n   ```\n\n9. 使用非特权模式启动容器\n   ```bash\n   # 参数可以参考 ./anylink tool -d\n   # 可以使用命令行参数 或者 环境变量 配置\n   docker run -itd --name anylink \\\n       -p 443:443 -p 8800:8800 -p 443:443/udp \\\n       -v /dev/net/tun:/dev/net/tun --cap-add=NET_ADMIN \\\n       --restart=always \\\n       bjdgyc/anylink\n   ```\n\n10. 构建镜像 (非必需)\n   ```bash\n   #获取仓库源码\n   git clone https://github.com/bjdgyc/anylink.git\n   # 构建镜像\n   sh build_docker.sh\n   或\n   docker build -t anylink -f docker/Dockerfile .\n   ```\n\n## 常见问题\n\n请前往 [问题地址](doc/question.md) 查看具体信息\n\n\u003c!--\n## Discussion\n\n群共享文件有相关软件下载\n\n添加微信群: 群共享文件有相关软件下载\n\n![contact_me_qr](doc/screenshot/contact_me_qr.png)\n--\u003e\n\n## Support Document\n\n- [三方文档-男孩的天职](https://note.youdao.com/s/X4AxyWfL)\n- [三方文档-issues](https://github.com/bjdgyc/anylink/issues)\n- [三方文档-思有云](https://www.ioiox.com/archives/128.html)\n- [三方文档-杨杨得亿](https://yangpin.link/archives/1897.html)  [Windows电脑连接步骤-杨杨得亿](https://yangpin.link/archives/1697.html)\n\n## Support Client\n\n- [AnyConnect Secure Client](https://www.cisco.com/) (可通过群文件下载: Windows/macOS/Linux/Android/iOS)\n- [OpenConnect](https://gitlab.com/openconnect/openconnect) (Windows/macOS/Linux)\n- [三方 AnyLink Secure Client](https://github.com/tlslink/anylink-client) (Windows/macOS/Linux)\n- 【推荐】三方客户端下载地址(\n  Windows/macOS/Linux/Android/iOS) [国内地址](https://ocserv.yydy.link:2023)\n\n## Contribution\n\n欢迎提交 PR、Issues，感谢为 AnyLink 做出贡献。\n\n注意新建 PR，需要提交到 dev 分支，其他分支暂不会合并。\n\n## Other Screenshot\n\n\u003cdetails\u003e\n\u003csummary\u003e展开查看\u003c/summary\u003e\n\n![system.jpg](doc/screenshot/system.jpg)\n![setting.jpg](doc/screenshot/setting.jpg)\n![users.jpg](doc/screenshot/users.jpg)\n![ip_map.jpg](doc/screenshot/ip_map.jpg)\n![group.jpg](doc/screenshot/group.jpg)\n\n\u003c/details\u003e\n\n## License\n\n本项目采用 AGPL-3.0 开源授权许可证，完整的授权说明已放置在 LICENSE 文件中。\n\n## Thank\n\n\u003ca href=\"https://www.jetbrains.com\"\u003e\n    \u003cimg src=\"doc/screenshot/jetbrains.png\" width=\"200\" alt=\"jetbrains.png\" /\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbjdgyc%2Fanylink","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbjdgyc%2Fanylink","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbjdgyc%2Fanylink/lists"}