企业级开源SSL VPN保姆级部署教程

2026年01月21日/ 浏览 9

在数字化时代,远程办公越来越普遍,但安全访问内网资源却常常成为痛点。今天给大家安利一个超级实用的开源神器——AnyLink!

AnyLink 是一个企业级开源 SSL VPN 软件,支持多人同时在线使用,基于 OpenConnect 协议开发,完全兼容 Cisco AnyConnect 客户端。它用 TLS/DTLS 加密传输数据,轻量高效,还能实现 NAT 或桥接模式访问内网。项目地址:

https://github.com/cherts/anylink。GitHub Star 超高,社区活跃,适合个人开发者或小团队快速上手。

为什么推荐它?

免费开源:零成本部署,支持自签名证书或 Lets Encrypt。

高兼容:AnyConnect 客户端一键连接,Windows/Mac/iOS/Android 全平台。

功能强大:IP 持久映射、流量限速、TOTP 双因素认证、动态分流隧道等。

易扩展:支持 RADIUS/LDAP 认证,适合企业级场景。

第一步:准备工作

系统要求

支持平台:CentOS 7/8、Ubuntu 18.04/20.04、AnolisOS 8(推荐 Ubuntu,新手友好)。 内核:支持 tun/tap 接口(Linux 内核 3.10)。 依赖:iptables iproute2(安装命令见下)。 网络:服务器需有公网 IP 和域名(用于 HTTPS 访问),内网网卡如 eth0。 证书:RSA ECC 格式(PEM),测试用自签名,生产用 Lets Encrypt。

安装依赖

登录服务器,运行:

# Ubuntu/Debian sudo apt update && sudo apt install iptables iproute2 wget curl -y # CentOS/RHEL sudo yum install iptables iproute wget curl -y

启用 IP 转发(VPN 核心!):

echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf sudo sysctl -p

临时关闭防火墙测试(生产环境再细调):

# Ubuntu sudo ufw disable # CentOS sudo systemctl stop firewalld

第二步:下载与安装服务器端(10 分钟)

推荐用预编译二进制包,新手别折腾源码编译。

1. 下载部署包

访问

https://github.com/cherts/anylink/releases,下载最新 anylink-0.13.1-linux-amd64.tar.gz

上传到服务器(用 SCP 或 wget):

wget https://ghproxy.com/https://github.com/cherts/anylink/releases/download/v0.13.1/anylink-0.13.1-linux-amd64.tar.gz tar -zxvf anylink-0.13.1-linux-amd64.tar.gz cd anylink-deploy

2. 复制二进制文件

sudo cp anylink /usr/sbin/anylink sudo chmod +x /usr/sbin/anylink

3. 配置目录

sudo mkdir -p /etc/anylink sudo cp conf/server-sample.toml /etc/anylink/server.toml sudo cp conf/profile.xml /etc/anylink/ sudo cp conf/vpn_cert.crt /etc/anylink/  # 你的证书文件 sudo cp conf/vpn_cert.key /etc/anylink/  # 你的私钥文件

证书生成(自签名测试用):

如果没证书,快速生成:

   openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 \\       -keyout /etc/anylink/vpn_cert.key \\       -out /etc/anylink/vpn_cert.crt \\       -subj "/C=CN/ST=Beijing/L=Beijing/O=MyOrg/CN=your-domain.com"

(替换 `your-domain.com` 为你的域名。生产环境使用已购买的证书或阿里申请个人免费ssl证书或用 Certbot 申请 Lets Encrypt:`sudo certbot certonly --standalone -d your-domain.com`)

4. 创建工作目录

sudo mkdir -p /var/lib/anylink/files     sudo cp conf/files/index.html conf/files/info.txt /var/lib/anylink/files/

5. 编辑配置文件(/etc/anylink/server.toml)

用 vim 或 nano 编辑,关键配置示例(TUN + NAT 模式,最简单):

[server]     listen = ":443"  # HTTPS 端口     admin_listen = ":8800"  # 管理后台端口     db_type = "sqlite3"  # 数据库,SQLite 够用     db_source = "./conf/anylink.db"     [link]     link_mode = "tun"  # TUN 模式(NAT)     iptables_nat = true     ipv4_cidr = "192.168.90.0/24"  # VPN IP 段     ipv4_start = "192.168.90.100"     ipv4_end = "192.168.90.200"     ipv4_dns = [ "114.114.114.114"]  # DNS     [cert]     cert_file = "/etc/anylink/vpn_cert.crt"     key_file = "/etc/anylink/vpn_cert.key"

保存后,设置 NAT 规则:

sudo iptables -t nat -A POSTROUTING -s 192.168.90.0/24 -o eth0 -j MASQUERADE  # eth0 换成你的网卡 sudo iptables-save | sudo tee /etc/iptables.rules  # 保存规则

6. 启动服务(Systemd 方式)

sudo cp systemd/anylink.service /lib/systemd/system/anylink.service  # Ubuntu  # 或 /usr/lib/systemd/system/anylink.service  # CentOS sudo systemctl daemon-reload sudo systemctl start anylink sudo systemctl enable anylink sudo systemctl status anylink  # 检查状态

Docker 方式(更简单,无需依赖):

对于国内用户,为了提高镜像拉取体验,可以考虑拉取仓库于阿里云镜像仓库的镜像,镜像名称及标签表如下所示(具体版本号可以查看version文件):

支持设备/平台

Docker Hub

阿里云镜像仓库

x86_64/amd64

bjdgyc/anylink:最新

registry.cn-hangzhou.aliyuncs.com/bjdgyc/anylink:latest

x86_64/amd64

bjdgyc/anylink:0.13.1

registry.cn-hangzhou.aliyuncs.com/bjdgyc/anylink:0.13.1

armv8/aarch64

bjdgyc/anylink:最新

registry.cn-hangzhou.aliyuncs.com/bjdgyc/anylink:arm64v8-latest

armv8/aarch64

bjdgyc/anylink:0.13.1

registry.cn-hangzhou.aliyuncs.com/bjdgyc/anylink:arm64v8-0.13.1

docker镜像源地址

docker.1ms.run/bjdgyc/anylink:latest dockerhub.yydy.link:2023/bjdgyc/anylink:latest sudo docker pull cherts/anylink:latest sudo docker run -itd --name anylink --privileged \\       -p 443:443 -p 8800:8800 -p 443:443/udp \\       --restart=always \\       -v /etc/anylink:/etc/anylink \\       -v /var/lib/anylink:/var/lib/anylink \\       cherts/anylink

第三步:配置用户与测试

1. 访问管理后台

浏览器打开 `https://你的服务器内网IP:8800`(如 192.168.1.100:8800),默认账号:admin / 123456。

首次登录,修改密码!用 /anylink tool -p 新密码 生成哈希值替换配置文件。

2. 添加用户

登录后台 > 用户管理 > 新增用户。

设置用户名、密码、组别(默认组即可)。

支持 TOTP(Google Authenticator)双因素,扫描二维码绑定。

第四步:客户端连接

1. 下载客户端

官网下载 Cisco AnyConnect(免费版够用):(

https://www.cisco.com/c/en/us/support/security/anyconnect-secure-mobility-client/tsd-products-support-series-home.html)。

2. 连接步骤

- 打开 AnyConnect,输入 `你的域名:443 建议按你实际的端口,以外演示是8443端口

- 选择组:ops(默认)。

输入后台添加的用户名/密码。注意如果开启了多因子认证,请在手机上打开otp输入密码后再输入otp值然后点确认。

测试环境:设置 > 偏好设置 > 取消勾选“阻止连接不受信任的服务器”。

点击连接!成功后,IP 变为 192.168.90.x,可 ping 内网资源。

常见坑:

连接失败?检查证书信任、端口 443/UDP 开放。

无网?确认 NAT 规则生效(iptables -t nat -L)。

慢?试试 DTLS-UDP 模式(配置文件中启用)。

picture loss