AnyLink 是一款 SSL 扶墙 软件,它可以兼容 AnyConnect 以满足对企业内网的接入。另外你也可以像 x-ui 那样分配用户组以及规则,总之在 Clash 纷纷删库后使用三层扶墙当梯子确实是个退而求其次的方案。本文以CentOS 7为例,简单介绍 AnyLink 的部署及使用技巧。 准备工作 CentOS 7 服务器(AnyLink 服务端仅在 CentOS 7、CentOS 8、Ubuntu 18.04、Ubuntu 20.04 测试通过) 获取 anylink-deploy.tar.gz 并上传至服务器 获取域名证书(腾讯云、阿里云都可以免费签一年) 确认好网络环境 AnyLink 的 link_mode 参数有 tun、macvtap和tap模式。当然作者不推荐使用tap模式,实际测试下性能确实会大幅衰减。区别tun和macvtap这俩模式主要取决于环境,这边简单描述下就懂了。 tun模式 一般是云服务器使用,你可以理解成 NAT 了一层。(VMware中的NAT模式) 即扶墙客户端能访问服务器内网,但服务器内网不能访问扶墙客户端,就像在公司网络中放了一台路由器,扶墙客户端则是这台二级路由下的一个主机。被代理的IP段叫做安全路由(router),不被代理的IP段叫做非安全路由(norouter)。 为了方便演示我购买了一台云服务器,按 AnyLink 默认配置 192.168.90.0/24 (与服务器内网不同段)为例扶墙客户端分配的IP为 192.168.90.100-200,其网卡为 eth0 并出于 172.24.135.36/20 这个VPC中。 扶墙客户端连接的地址会以 /conf/server.toml 中所设定的内网(默认为 192.168.90.0/24)进行分配并作为安全路由,例如要访问服务器的VPC网络,在部署完成后需在面板添加 172.24.135.0/20 为安全路由。 macvtap模式 与 tun 模式不同的是,macvtap 模式少了一层NAT,直接接在服务器内网上(VMware中的桥接模式) 扶墙客户端在连上后分配的是服务器内网同段的地址,相当于是直接连接物理网络。因此 /conf/server.toml 中的网络参数需与服务器网卡一致,区别在于IP分配范围以避免IP冲突问题。 如何给扶墙客户端发公网IP 扯个题外话,例如我有宿迁移动 221.131.165.129/25 所有IP地址的使用权,但除业务外只有 200 – 254 属于空闲IP。那么使用macvtap模式设置的扶墙客户端分配的IP地址池应为: #客户端分配的ip地址池 ipv4_master = “eth0” ipv4_cidr = “221.131.165.129/25” ipv4_gateway = “221.131.165.129” ipv4_start = “221.131.165.200” ipv4_end = “221.131.165.254” 当连接成功后,服务器将会分配 221.131.165.200-254 (按顺序或管理面板固定IP)给扶墙客户端。若内网环境为公网,则可以做到发公网IP的目的。 服务器设置 安全组又叫防火墙,云厂商默认开启的东西。AnyLink需要开放443和8800,分别用于连接和管理面板,有安全考虑的同学可以自行放行,一般我简单粗暴设置全放行。 安全组开放后,要关闭系统中的 selinux 和防火墙 如果你是本地机房也需要开放一个公网IP地址+端口供客户端远程连接,并且关闭selinux和firewalld 关闭selinux sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/’ /etc/selinux/config # 永久关闭selinux(重启后生效) setenforce 0 # 临时关闭selinux(不需要重启,立即生效) 关闭firewalld systemctl stop firewalld # 临时关闭防火墙 systemctl disable firewalld # 永久关闭防火墙 部署 AnyLink 安装和配置 下载anylink,点击获取 anylink-deploy.tar.gz ,然后上传到服务器 SSH连接到,解压二进制包到/usr/local目录 tar -xzvf anylink-deploy.tar.gz -C /usr/local/ 进入anylink目录 cd /usr/local/anylink-deploy 生成密码 password 的密文,请修改为你自己要设置的密码 注意密码不能有 $ 符号,会被当成变量,也可以用单引号包起来 ./anylink tool -p password 记录下 Passwd: 后的密钥,等会改配置文件要用 生成jwt密钥 ./anylink tool -s 记录下 Secret: 后的密钥,等会改配置文件要用 修改 server.toml 文件 打开 https://github.com/bjdgyc/anylink/blob/main/server/conf/server-sample.toml 下载配置模板,然后重命名为 server.toml,开始修改配置文件: #系统名称 issuer = “XX公司扶墙” #后台管理用户 admin_user = “admin” #pass 123456 admin_pass = “$2a$10$UQ7C.EoPifDeJh6d8.31TeSPQU7hM/NOM2nixmBucJpAuXDQNqNke” # 留空表示不开启 otp, 开启otp后密码为 pass + 6位otp # 生成 ./anylink tool -o admin_otp = “” jwt_secret = “abcdef.0123456789.abcdef” 系统名称在等会会用到,可以带空格。另外建议把后台用户名 admin_user 改掉,使用 admin 可能会存在风险。然后将上一步, Passwd: 后和 Secret: 后的密钥依次替换admin_pass和jwt_secret对应引号的内容。 往下有个 link_mode ,若为NAT模式则保持tun即可,想桥接到内网中请改为macvtap。将 ipv4_master 的 eth0 设置为服务器网卡,使用 ip addr 指令就能看到,一般不是eth0就是ens192。 接下来找到发布默认域,改成你的域名。例如 扶墙.itxe.net (与后面的证书保持一致),这个等下改下发配置文件也会用到,与系统名称一样要记住。 # 要发布的默认域 default_domain = ” 扶墙.itxe.net” 最后是启用压缩功能,这个吃CPU算力。默认配置文件中不开,但正常的服务器开了反而节流也不会影响到速度,能相对的提升小包的转发性能。 修改 profile.xml 文件 从这个文件的23行开始看: 我们需要修改两个 HostAddress 为上面的发布默认域,另外我司ssl扶墙使用的是443端口,则写作