Alpine 中以二进制方式部署 EasyTier

729 字
4 分钟
Alpine 中以二进制方式部署 EasyTier

前言#

为什么写这篇文章原因是最近买了一台内存只有 512MB 的服务器,在装环境的时候思考了几秒打算这台服务器不会去使用 Docker,

然后在部署 EasyTier 的过程中发生了一点小问题故此有了写下这篇水文😁

准备环境#

安装软件包#

先更新软件包索引,然后安装基础软件包 wget​ curl​ tar​ unzip

Terminal window
apk update
apk add wget curl tar unzip

加载模块(可选)#

EasyTier 默认使用 TUN 模式,所以需要加载该模块

Terminal window
vi /etc/modules-load.d/tun.conf
# 按下 i 键进入编辑模式才能输入下一行的内容
tun
# 编辑完按下 Esc 键在输入 :wq 保存退出
modprobe tun
```‍
## 部署 EasyTier
### 下载 EasyTier
创建 EasyTier 文件夹,进入目录,下载二进制压缩包,然后解压。
这里部署目录为 `/opt/easytier`​ 版本以 `2.6.4` 为例,可自行修改。
```bash
mkdir -p /opt/easytier
cd /opt/easytier
wget https://github.com/EasyTier/EasyTier/releases/download/v2.6.4/easytier-linux-x86_64-v2.6.4.zip
unzip easytier-linux-x86_64-v2.6.4.zip

创建软链接#

创建软链接,这样我们就可以直接在其他地方执行 EasyTier 的相关命令。

Terminal window
ln -s /opt/easytier/easytier-core /usr/sbin/easytier-core
ln -s /opt/easytier/easytier-cli /usr/sbin/easytier-cli

编写 EasyTier 配置#

执行这条命令然后编辑配置

Terminal window
vi /opt/easytier/config/default.conf

此配置仅为样例

instance_name = "Demo-PC"
dhcp = true
listeners = [
"tcp://0.0.0.0:11010",
"udp://0.0.0.0:11010",
"wg://0.0.0.0:11011",
]
[network_identity]
network_name = "Demo-Network"
network_secret = "123456"
[[peer]]
uri = "tcp://<节点IP>:11010"

实现开机自启#

先手动创建日志文件

Terminal window
touch /var/log/easytier.log
chown nobody:nobody /var/log/easytier.log
touch /var/log/easytier.err.log
chown nobody:nobody /var/log/easytier.err.log

执行这条命令来创建编辑服务脚本

Terminal window
vi /etc/init.d/easytier

然后粘贴下方配置

⚠️ 注意

因为是以非 root 用户运行,使用 TUN 模式后创建网卡可能会出现出现 ERROR CORE::INSTANCE: [] tun device error err\=rust tun error Operation not permitted (os error 1) 问题,请查看文章底部

#!/sbin/openrc-run
name="EasyTier"
directory="/opt/easytier"
command="/opt/easytier/easytier-core"
command_args="-c /opt/easytier/config/default.conf"
# 这里以非 root 用户运行,如果想省事可以尝试改成 root:root
command_user="nobody:nobody"
pidfile="/run/$RC_SVCNAME.pid"
command_background=true
output_log="/var/log/easytier.log"
error_log="/var/log/easytier.err.log"
depend() {
need net
}

然后添加执行权限,因为这本质上就是一个脚本文件

Terminal window
chmod +x /etc/init.d/easytier

接下来就是将服务添加到默认级别(就是开机后系统正常运行的时候再去启动服务)

然后手动启动服务

Terminal window
rc-update add easytier default
rc-service easytier start
# 可选:查看运行状态
rc-service easytier status

因为 OpenRC​ 不像 Systemd​ 那样查看状态时能显示日志,所以查看日志需要我们手动去查看这两个文件 /var/log/easytier.log​ 和 /var/log/easytier.err.log

解决非 root 用户运行创建 TUN 网卡失败问题#

创建 TUN 网卡设备需要有 CAP_NET_ADMIN​ 权限,如果偏要以非 root 用户运行的话我们可以使用 setcap

💡 提示

此步骤需要在 root 用户下执行。且每次更新 EasyTier 后需要重新授权

安装软件包 libcap#

Terminal window
apk add libcap

授权#

Terminal window
setcap cap_net_admin+ep /opt/easytier/easytier-core

然后我们可以执行下方命令检查

Terminal window
getcap /opt/easytier/easytier-core

结果应为

Terminal window
/opt/easytier/easytier-core cap_net_admin=ep

重启 EasyTier 服务#

Terminal window
rc-service easytier restart

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Alpine 中以二进制方式部署 EasyTier
https://blog.nwn.moe/posts/deploy-easytier-binary-on-alpine/
作者
籽夏
发布于
2026-07-27
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
籽夏
谎言的代价是什么?
公告
欢迎来到我的博客!
分类
标签
站点统计
文章
15
分类
3
标签
12
总字数
34,084
运行时长
0 天
最后活动
0 天前
站点信息
文章许可
CC BY-NC-SA 4.0
构建时间
2026年8月29日 00:03:12