前言

本文是基于上篇文章 [开源企业级远程办公 VPN 软件 AnyLink 的 docker 部署及使用心得] 的群晖 NAS docker 部署教程.不再详细介绍 AnyLink 的相关信息,请先阅读上篇文章了解后在直接参考本文部署到群晖 NAS中.


安装流程

群晖配置 TUN/TAP 支持

由于 AnyLink 需要服务端支持 TUN/TAP 功能,群晖 NAS 必须开启 TUN/TAP 功能才能使用,否则容器将无法正常启动.


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

开启 SSH 功能

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

终端开启 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 则表示成功.


  

创建数据目录


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

1.创建目录用于存放数据库,数据库证书文件.本文以/docker/anylink为例.

2.创建空的数据库文件.

打开群晖的文本编辑器,新建一个空文件,直接另存为data.db保存至/docker/anylink.

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


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

4.下载server.toml文件

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


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


5.修改server.toml配置文件

修改server.toml中的证书名为你的域名证书名.

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

5.检查所有文件

确认证书文件,data.dbserver.toml文件已修改保存.

  

启动容器


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

docker - 注册表

搜索anylink,找到stilleshan/anylink并下载标签为最新的稳定版本,本文以0.2.1为例.

映像 - 选择镜像 - 启动

勾选使用高级权限执行容器

高级设置

勾选启用自动重新启动

添加文件夹选择上文创建的/docker/anylink,装载路径/app/conf不可修改.

端口设置
AnyLink 默认的前端连接端口为443,后台管理系统端口为8800.
为避免端口冲突,需根据实际情况将此两端口映射到没被占用的端口上,本文以880044444为例.
应用完成并启动容器

  

配置容器

选中容器 - 详情

终端机 - 新增

修改密码

终端机左侧选中bash,并依次执行以下命令修改密码和密钥,将密钥信息保存.

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

修改配置文件

再次使用群晖的文本编辑器修改server.toml配置文件中的密码.其他名称及外部地址根据实际情况修改.

重启容器

重启容器完成配置

  

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

后台的相关配置 SMTP / 用户组 / 用户 / 路由器 / 客户端 / 登陆 等操作与前言所述上一篇文章完全一致.