前言:可以在外快速接入内部局域网(公司或家庭),访问内部的其他主机(服务器、NAS等),可以在陌生的网络中快速安全的进行连接,有软路由还可以实现一些特殊的功能。

安装和配置

0.准备一台linux虚拟机,博主测试的为Debian12 4c4g60g的配置

1.下载anylink并上传到虚拟机

https://github.com/bjdgyc/anylink/releases/download/v0.9.3/anylink-deploy.tar.gz

2.解压二进制包到/usr/local目录

tar -xzvf anylink-deploy.tar.gz -C /usr/local/

3.进入anylink目录

cd /usr/local/anylink-deploy

4.生成密码 123456 的密文,修改为你要设置的密码

./anylink tool -p 123456

Passwd:$2a$10$jvyk9vcpbPWbaDHKBwQ6VeOPDznYBki5NFzuQ3TwZMJw32oK9MEx.

5.生成jwt密钥

./anylink tool -s
Secret:7PPUaaVq_8ucDPr0PR9m5Lfdcvsy86Wy0ollSp3CTqMHeP1hp0gqCB5L6U8C0TZ4_kMWmYZXSqzzEzo

6.进入conf配置目录

cd conf

7.拷贝配置文件模板

cp server-sample.toml server.toml

8.上传SSL证书重命名为vpn_cert.crt、vpn_cert.key

没有的话可以到https://freessl.cn/申请

9.打开配置文件

nano server.toml

10.修改如下部分,其他保持不变:

#示例配置信息
#其他配置文件,可以使用绝对路径
#或者相对于 anylink 二进制文件的路径

#数据文件
db_type = sqlite3
db_source = ./conf/anylink.db
#证书文件 使用跟nginx一样的证书即可
cert_file = ./conf/vpn_cert.crt
cert_key = ./conf/vpn_cert.key
files_path = ./conf/files
profile = ./conf/profile.xml
#日志目录,为空写入标准输出
#log_path = ./log
log_path =
log_level = debug
pprof = false

#系统名称
issuer = SSL VPN
#后台管理用户
admin_user = admin
#pass 123456
admin_pass = $2a$10$jvyk9vcpbPWbaDHKBwQ6VeOPDznYBki5NFzuQ3TwZMJw32oK9MEx.
jwt_secret = 7PPUaaVq_8ucDPr0PR9m5Lfdcvsy86Wy0ollSp3CTqMHeP1hp0gqCB5L6U8C0TZ4_kMWmYZXSqzzEzo

#服务监听地址
server_addr = :443
#开启 DTLS, 默认关闭
server_dtls = false
server_dtls_addr = :443
#后台服务监听地址
admin_addr = :8800
#开启tcp proxy protocol协议
proxy_protocol = false

link_mode = macvtap

#客户端分配的ip地址池
ipv4_master = ens192
ipv4_cidr = 192.168.1.0/24
ipv4_gateway = 192.168.1.1
ipv4_start = 192.168.1.150
ipv4_end = 192.168.1.160

#最大客户端数量
max_client = 100
#单个用户同时在线数量
max_user_client = 3
#IP租期(秒)
ip_lease = 86400

#默认选择的组
default_group = one

#客户端失效检测时间(秒) dpd > keepalive
cstp_keepalive = 6
cstp_dpd = 10
mobile_keepalive = 15
mobile_dpd = 20

#设置最大传输单元
mtu = 1460

# 要发布的默认域

default_domain = example.com
#default_domain = example.com abc.example.com

#session过期时间,用于断线重连,0永不过期
session_timeout = 3600
auth_timeout = 0
audit_interval = -1

show_sql = false

#是否自动添加nat
iptables_nat = false

#启用压缩
compression = false
#低于及等于多少字节不压缩
no_compress_limit = 256

#客户端显示详细错误信息(线上环境慎开启)
display_error = false

11.创建日志文件目录

修改为自己配置的日志路径,不创建会启动失败,如果没有打开日志输出,可以跳过

mkdir /usr/local/anylink-deploy/log

12.打开profile.xml文件

nano profile.xml

<HostName>anylink vpn</HostName> # 第30行,最好与server.toml配置文件中的系统名称保持一
致,用于客户端区分
<HostAddress>vpn.test.com:443</HostAddress> # 第31行,客户端连接地址,域名加端口,或者
IP加端口

复制service文件到系统中

cp /usr/local/anylink-deploy/systemd/anylink.service /usr/lib/systemd/system/


启动anylink

systemctl start anylink

查看启动状态

systemctl status anylink

开机自动启动

systemctl enable anylink.service


浏览器访问后台管理

路由器映射443到8443和8800到8800,没有公网IP话的可以用frp进行内网穿透

访问地址公网IP+端口(默认8800),输入账号(admin)和 密码(123456)点击登陆

https://vpn.test.com:8800/

ad549428afe5f231fbd07d0388d37fd3.png登录后用户组列表-添加

用户列表-添加-填写pin、禁用opt、勾选用户组

客户端下载

移动端可以在应用商店搜索AnyConnect

https://www.123pan.com/s/2zg9-VSjy.html 提取码:ol2O

客户端添加地址vpn.test.com:8443,用户名和密码(pin)连接即可

其他模式比如tun模式需要NAT和添加静态路由,如需docker部署具体请参考GitHub