群晖 Docker 部署
创建项目
其他系统的 Docker 同理,因为我有群晖所以这里介绍这如何使用Container Manager
原文链接:安装 (命令行程序) | EasyTier – 简单、安全、去中心化的异地组网方案
Container Manager 中新增一个项目

创建 /volume<n>/docker/easytier/root 文件夹,并填写 docker-compose.yml 内容,记得用户名和密码 DIY 高一点,避免和别人冲突和别人组在一起:
services:
watchtower: # 用于自动更新easytier镜像,若不需要请删除这部分
image: containrrr/watchtower
container_name: watchtower
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
- WATCHTOWER_NO_STARTUP_MESSAGE
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --interval 3600 --cleanup --label-enable
easytier:
image: easytier/easytier:latest # 国内用户可以使用 m.daocloud.io/docker.io/easytier/easytier:latest
hostname: easytier
container_name: easytier
labels:
com.centurylinklabs.watchtower.enable: 'true'
restart: unless-stopped
network_mode: host
cap_add:
- NET_ADMIN
- NET_RAW
environment:
- TZ=Asia/Shanghai
devices:
- /dev/net/tun:/dev/net/tun
volumes:
# - /etc/easytier:/root
- ./root:/root # docker的root放在文件夹内更好
- /etc/machine-id:/etc/machine-id:ro # 映射宿主机机器码
command: -d --network-name <用户> --network-secret <密码> -p tcp://public.easytier.cn:11010这里用的是 public.easytier.cn 域名,而后面客户端默认是 public.easytier.top ,注意要一致性,如果喜欢 cn 就都用 cn 。
这里没有用到官网用户名,如果需要用到官网用户,我会在后面讲解。
错误处理
注意,如果没有开启 tun 的群晖直接构建该项目,会报错:
Error response from daemon: error gathering device information while adding custom device "/dev/net/tun": no such这个错误提示表明 Docker 容器在尝试访问 /dev/net/tun 设备时失败了,因为宿主机上不存在这个设备文件。
错误原因解释:
/dev/net/tun 是 Linux 系统中用于创建虚拟网络隧道(TUN/TAP 设备)的特殊设备文件。它主要用于实现 VPN、隧道连接、虚拟网络等功能,允许应用程序在用户空间创建和管理网络数据包。
在配置中,easytier 容器需要使用 TUN 设备来建立虚拟网络连接,所以配置了 devices: - /dev/net/tun:/dev/net/tun 来映射这个设备到容器中。
解决方法:
检查宿主机是否支持 TUN 设备:
连接群晖的 SSH ,运行以下命令确认 TUN 模块是否加载:
lsmod | grep tun一般会列出:
tunnel4 2453 1 sit
ip6_udp_tunnel 1967 1 vxlan
udp_tunnel 2419 1 vxlan
ip_tunnel 12462 1 sit从执行的输出结果来看,目前系统中并没有加载 tun 模块,显示的是其他与隧道相关的模块(如 tunnel4、udp_tunnel 等),这些和 tun 模块不是一回事。
手动加载 tun 模块
执行以下命令尝试加载 tun 模块:
sudo modprobe tun但是每次开机都执行该命令去加载 tun 模块不现实
那么就在设置的计划任务中加入该命令脚本 Import TUN mod ,记得用户账号改为 root :
#!/bin/sh
modprobe tun # 不需要 sudo,因为脚本本身以 root 运行这样一来,开机后就会执行命令加载 tun 模块。
这样构建项目后,就完成了服务器的配置。
客户端配置
我们可以在这里找到对应系统的图形界面安装包:安装 (图形界面) | EasyTier – 简单、安全、去中心化的异地组网方案或下载 | EasyTier – 简单、安全、去中心化的异地组网方案
这里先用 Windows 为例:

确认框中内容和 docker 的 yml 一样,点击运行网络

这样就能和群晖 nas 组在一起了。
MacOS 可以用 dmg 安装包,也可以用 brew:
brew tap brewforge/chinese
brew install --cask easytier-gui使用方法同理。
安装服务端
如果你要用手头的 VPS 自建节点,服务器中输入以下命令:
wget -O /tmp/easytier.sh "https://raw.githubusercontent.com/EasyTier/EasyTier/main/script/install.sh" && sudo bash /tmp/easytier.sh install --gh-proxy https://ghfast.top/
easytier-core
# 如果对共享节点要进行更多配置,请至官网查看
# 可配置关闭转发、私有模式等网络方式中安需求填写类似 tcp://公网IP:11010 之类即可,也可填写为其配置的域名。
官网可视化自定义配置(高阶)
进入官网 EasyTier – 简单、安全、去中心化的异地组网方案,点击右上角的 Web 控制台 注册登录。
记住用户名,将 yml 改为:
services:
watchtower: # 用于自动更新easytier镜像,若不需要请删除这部分
image: containrrr/watchtower
container_name: watchtower
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
- WATCHTOWER_NO_STARTUP_MESSAGE
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --interval 3600 --cleanup --label-enable
easytier:
image: easytier/easytier:latest # 国内用户可以使用 m.daocloud.io/docker.io/easytier/easytier:latest
hostname: easytier
container_name: easytier
labels:
com.centurylinklabs.watchtower.enable: 'true'
restart: unless-stopped
network_mode: host
cap_add:
- NET_ADMIN
- NET_RAW
environment:
- TZ=Asia/Shanghai
devices:
- /dev/net/tun:/dev/net/tun
volumes:
# - /etc/easytier:/root
- ./root:/root # docker的root放在文件夹内更好
- /etc/machine-id:/etc/machine-id:ro # 映射宿主机机器码
command: -w <用户名>构建后,会在 web 控制台中看到设备,点击设备的设置齿轮图标,创建一条网络,和图形客户端一致:


这样创建网络并组网就完成了,可以随时随地在网页上修改、添加多条组网线。