群晖NAS高级服务 – docker 部署 AnyLink 企业级远程办公 VPN 服务

前言

本文是基于上篇文章

[开源企业级远程办公 VPN 软件 AnyLink 的 docker 部署及使用心得]

群晖 NAS docker 部署教程.不再详细介绍 AnyLink 的相关信息,请先阅读上篇文章了解后在直接参考本文部署到群晖 NAS中.

本文为 Stille 原创文章.经实践,测试,整理发布.如需转载请联系作者获得授权,并注明转载地址.

  
群晖NAS高级服务 - docker 部署 AnyLink 企业级远程办公 VPN 服务

安装流程

群晖配置 TUN/TAP 支持

由于 AnyLink 需要服务端

支持 TUN/TAP 功能

,群晖 NAS 必须开启 TUN/TAP 功能才能使用,否则容器将无法正常启动.

群晖 TUN/TAP 功能的开启博主是参照网上的一些教程,并且测试成功.

开启 SSH 功能

控制面板 – 终端机和 SNMP – 勾选启动 SSH 功能
1830320622

终端开启 TUN/TAP 支持

macOS 使用终端, windows 使用 putty 等软件执行以下命令登陆群晖 NAS 并开启 TUN/TAP 支持

ssh xxxx@192.168.1.8
# 使用群晖管理员账号登陆
sudo -i
# 切换至 root
# 依次执行以下 5 条命令
insmod /lib/modules/tun.ko
mkdir /dev/net
mknod /dev/net/tun c10 200
chmod 600/dev/net/tun
cat /dev/net/tun

由于博主已经开启了 TUN/TAP 功能支持,下图中前 4 条命令的返回结果可能和各位不同,但是最后一条显示 File descriptor inbad state 则表示成功.

1001996702
  
4267100629-12

创建数据目录

首次安装请确保依照教程创建以下相关文件,缺一不可,缺少文件会导致容器启动失败.

1.创建目录用于存放

数据库

,

数据库

证书

文件.本文以

/docker/anylink

为例.

3805388782

2.创建空的

数据库

文件.

打开群晖的

文本编辑器

,新建一个空文件,直接另存为

data.db

保存至

/docker/anylink

.

3000824404

3.将用于链接 VPN 的域名证书上传至此目录.

AnyLink 使用 TLS/DTLS 进行数据加密,因此需要 RSA 或 ECC 证书.所以当连接 VPN 时的服务器地址需要使用域名,并且配置证书才能使用.如果是在有 动态公网 IP 的家里使用,则需要配置 DDNS 域名,

1424776481

4.下载

server.toml

文件

https://raw.githubusercontent.com/bjdgyc/anylink/main/server/conf/server.toml

如无法下载,点击查看复制,使用文本编辑器并自行创建.


server.toml

#服务配置信息

#其他配置文件,可以使用绝对路径
#或者相对于server.toml的路径

#数据文件
db_file = "./data.db"
#证书文件
cert_file = "./test_vpn_cert.pem"
cert_key = "./test_vpn_key.pem"
ui_path = "../ui"
files_path = "../files"
#日志目录,为空写入标准输出
#log_path = "../log"
log_path = ""
log_level = "info"

#系统名称
issuer = "XX公司VPN"
#后台管理用户
admin_user = "admin"
#pass 123456
admin_pass = "$2a$10$UQ7C.EoPifDeJh6d8.31TeSPQU7hM/NOM2nixmBucJpAuXDQNqNke"
jwt_secret = "iLmspvOiz*%ovfcs*wersdf#^heR8pNU^4XxBm&mW$aPCjSRMbYH#&"


#vpn服务对外地址,影响开通邮件二维码
link_addr = "vpn.xx.com"

#前台服务监听地址
server_addr = ":443"
#后台服务监听地址
admin_addr = ":8800"
#开启tcp proxy protocol协议
proxy_protocol = false

link_mode = "tun"

#客户端分配的ip地址池
ipv4_cidr = "192.168.10.0/24"
ipv4_gateway = "192.168.10.1"
ipv4_start = "192.168.10.100"
ipv4_end = "192.168.10.200"

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

#默认选择的组
default_group = "one"

#客户端失效检测时间(秒) dpd > keepalive
cstp_keepalive = 20
cstp_dpd = 30
mobile_keepalive = 50
mobile_dpd = 60
#session过期时间,用于断线重连,0永不过期
session_timeout = 3600
auth_timeout = 0

5.修改

server.toml

配置文件

修改

server.toml

中的证书名为你的域名证书名.

如果 server.toml 中的证书名与实际证书名不一致则会导致容器启动失败

40661670

5.检查所有文件

确认

证书文件

,

data.db

server.toml

文件已修改保存.
3065981104

  
4267100629-12

启动容器

当前适用于 0.2.1 版本
由于软件还在更新迭代中,不确定后期的安装方法是否一致,本教程建议使用 stilleshan/anylink:0.2.1 带固定版本号的镜像

docker – 注册表

搜索

anylink

,找到

stilleshan/anylink

并下载标签为最新的稳定版本,本文以

0.2.1

为例.

3421252902

1325052204

映像 – 选择镜像 – 启动

3178681126

勾选

使用高级权限执行容器

1258851572

高级设置

勾选

启用自动重新启动

2912684402

添加文件夹

选择上文创建的

/docker/anylink

,装载路径

/app/conf

不可修改.
205130520

端口设置
AnyLink 默认的前端连接端口为

443

,后台管理系统端口为

8800

.
为避免端口冲突,需根据实际情况将此两端口映射到没被占用的端口上,本文以

8800

44444

为例.
应用完成并启动容器
1692965

  
4267100629-12

配置容器

选中容器 – 详情

3922494927

终端机 – 新增

2057501418

修改密码

终端机左侧选中

bash

,并依次执行以下命令修改密码和密钥,将密钥信息保存.

./anylink tool -p 87654321
# 修改密码
./anylink tool -s
# 生成jwt密钥

3516135450

修改配置文件

再次使用群晖的文本编辑器修改

server.toml

配置文件中的密码.其他名称及外部地址根据实际情况修改.
3485836742

重启容器

重启容器完成配置
1708389172

  
4267100629-12

配置 SMTP / 用户组 / 用户 / 路由器 / 客户端 / 登陆

后台的相关配置

SMTP / 用户组 / 用户 / 路由器 / 客户端 / 登陆

等操作与前言所述上一篇文章完全一致.
点击以下链接访问上文参考配置


  
4267100629-12

结语

由于 AnyLink 还在持续的更新和优化中,博主也仅仅使用了几天,同时使用场景也有限,无法给出更全面的评测.大家感兴趣的可以关注 GitHub 项目,期待后续更加完善的版本.


本站提供免费和付费的技术支持.你可以通过留言,邮件,TG群的方式来技术交流和免费咨询.同时也可以付费支持的方式获得相关的技术支持,项目部署配置等服务.具体相关详情请点击查看 技术支持页面

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享