在多云、异构网络或跨国办公的场景中,如何实现安全、高效、开箱即用的组网一直是个痛点。传统的 VPN 部署繁琐,而公共组网工具又常常受限于复杂的命令行参数,重启后极易失效。
本文将分享一套基于 EasyTier 与 WireGuard 门户的运维方案。本方案采用“配置驱动”模式,能够有效避开不可控的命令行参数,并配合 Systemd 实现守护进程托管,确保服务器在重启后依然能稳健运行。
1. 环境准备与架构识别
EasyTier 是一个单二进制文件应用。在部署前,我们需要根据服务器的底层芯片架构(例如 ARM64 或 x86_64)选择对应的安装版本。
首先,在服务器上创建标准化的工作目录:
Bash
# 创建标准化工作目录
mkdir -p /opt/easytier/config
# 进入目录
cd /opt/easytier
2. 下载与安装 (及版本升级)
为了方便后续维护,升级逻辑遵循:停止服务 -> 替换文件 -> 启动服务 的标准流程。
通过以下脚本可以自动检测当前系统的 CPU 架构,并下载对应的安装包:
Bash
# 自动检测架构并下载最新版 (以 v2.2.0 为例)
ARCH=$(uname -m)
if [ "$ARCH" = "x86_64" ]; then
FILE="x86_64-unknown-linux-musl"
else
FILE="aarch64-unknown-linux-musl"
fi
wget https://github.com/EasyTier/EasyTier/releases/download/v2.2.0/easytier-linux-$FILE.tar.gz
# 解压并替换旧文件
tar -xzvf easytier-linux-$FILE.tar.gz
mv -f easytier-core easytier-cli /opt/easytier/
chmod +x /opt/easytier/easytier-*
# 清理压缩包
rm easytier-linux-$FILE.tar.gz
3. 核心配置文件 (注入 WireGuard 参数)
为了彻底解决命令行参数难以维护的问题,我们将所有的核心逻辑(包含 WireGuard 门户集成)直接写入配置文件 default.conf 中。
执行命令创建并编辑配置文件:
Bash
nano /opt/easytier/config/default.conf
写入以下配置模板(请根据实际环境修改各项参数):
Ini, TOML
instance_name = "Overseas-Relay" # 节点显示名称
ipv4 = "10.x.x.6" # 该节点的虚拟内网 IP
# 本地监听端口
listeners = [
"tcp://0.0.0.0:11010",
"udp://0.0.0.0:11010",
]
[network_identity]
network_name = "your_network_name" # 你的网络名称
network_secret = "your_network_secret" # 你的网络密钥
[[peer]]
# 连接到其他主节点或互联节点
uri = "tcp://x.x.x.x:11010"
# --- WireGuard VPN 门户配置区 ---
[vpn_portal_config]
# 手机或外部客户端接入后获得的虚拟 IP 段(不要和上面的内网段冲突)
client_cidr = "10.x.x.0/24"
# WireGuard 监听端口
wireguard_listen = "0.0.0.0:11013"
[flags]
private_mode = true # 开启私有模式,不自动发现公共对等点
4. Systemd 服务托管 (防止进程丢失)
为了防止进程意外退出、终端断开导致服务中断,或者出现无法杀死的“幽灵进程”,强烈建议使用 Systemd 将 EasyTier 托管为系统服务。
运行以下命令生成服务配置文件:
Bash
cat <<EOF > /etc/systemd/system/easytier.service
[Unit]
Description=EasyTier P2P VPN Service
After=network.target network-online.target
Wants=network-online.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/easytier
# 只读取配置文件,所有功能在 default.conf 定义
ExecStart=/opt/easytier/easytier-core -c /opt/easytier/config/default.conf
Restart=always
RestartSec=5
# 限制日志大小,防止塞满磁盘
StandardOutput=append:/opt/easytier/easytier.log
StandardError=append:/opt/easytier/easytier.log
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
激活并启动服务:
Bash
systemctl daemon-reload
systemctl enable easytier
systemctl restart easytier
5. WireGuard 客户端连接详解
通过 EasyTier 的内建 WireGuard 门户,手机或外部笔记本无需安装专门的 P2P 客户端,即可直接接入虚拟局域网。
第一步:提取配置参数
在服务器上执行以下命令,获取客户端连接所需的密钥及参数:
Bash
/opt/easytier/easytier-cli vpn-portal
第二步:客户端 App 填入对照表
将上一步获取到的内容填入 WireGuard 客户端:
| WireGuard 字段 | 填入内容 | 说明 |
| PrivateKey | 终端输出的 PrivateKey | 客户端的私钥 |
| Address | 10.x.x.2/32 | 重要:手动指定分配的客户端 IP,末尾必须带 /32 |
| DNS 服务器 | 114.114.114.114 (或自定义) | 建议填写以保证域名解析正常 |
| PublicKey | 终端输出的 PublicKey | 服务器端的公钥 |
| AllowedIPs | 10.x.x.0/24, 10.y.y.0/24 | 允许客户端访问的内网网段 |
| Endpoint | your.domain.com:11013 | 重要:填写服务器的公网域名(或 IP)及对应端口 |
| 持续检查 (Keepalive) | 25 | 建议填写 25 秒,防止NAT超时或防火墙断开连接 |
6. 节点迁移指南
当服务器需要进行更换或迁移时,可以通过以下三个步骤平滑过渡:
- 打包配置:将
/opt/easytier/config/整个目录打包备份。 - 部署环境:在新服务器上重复执行上述的“下载与安装”步骤。
- 还原服务:将备份的
default.conf放入新机器的对应目录中,并重新创建easytier.service启动服务。- 提示:若需要保持原有的节点 Peer ID 不变,请确保将配置目录下的隐藏身份文件一并迁移。
7. 常用运维与排查命令
- 查看客户端连接状态:
/opt/easytier/easytier-cli vpn-portal(检查connected_clients列表) - 查看所有内网节点:
/opt/easytier/easytier-cli peer - 查看当前路由追踪:
/opt/easytier/easytier-cli route - 实时查看运行日志:
tail -f /opt/easytier/easytier.log