完全私有化部署
本说明出自非官方。是个人的搭建经验总结,仅代表个人见解, 有问题欢迎讨论
本说明环境基于 阿里云ECS ,linux发行版 ubuntu2204, easytier版本 v2.4.5
下载地址请移步官方网站
本说明从共有四个步骤
-
搭建web管理平台服务
-
启动私有共享节点
-
在需要组网的服务器或PC,以web的方式启动服务(Linux 和 Windows 分别进行配置说明)
-
其他组网工具演示
先下载对应的二进制包: https://github.com/EasyTier/EasyTier/releases
内部存在 easytier-core easytier-web-embed easytier-cli easytier-web(用不到)
1. 搭建web管理平台服务
前置预设:
我的域名假设为 easytier.mydomain.com
使用的可执行文件为 easytier-web-embed
配置参数示意
–config-server-port 22222
–web-server-port 11111
–api-server-port 11111
–api-host http://easytier.mydomain.com:11111
新建文件easytier-web-emdeb.service内容如下
[Unit]
Description=EasyTier Service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
ExecStart=${path}/easytier-linux-x86_64/easytier-web-embed \
--db ${path}/easytier-linux-x86_64/web-embed/easytier-web-embed.db \
--file-log-level warn \
--file-log-dir ${path}/easytier-linux-x86_64/web-embed/easytier-web-embed-log \
--config-server-port ${port1} \
--config-server-protocol udp \
--api-server-port ${port2} \
--web-server-port ${port2} \
--api-host http://${domain}:${port2}
[Install]
WantedBy=multi-user.target
因为在配置项中使用到了 ${path}/easytier-linux-x86_64/web-embed
检查 ${path}/easytier-linux-x86_64/web-embed 目录是否存在
然后把easytier-web-emdeb.service文件复制到/etc/systemd/system/
启动服务: sudo systemctl start easytier-web-emdeb.service
根据自己服务器类型配置好防火墙访问:
http://easytier.mydomain.com:11111 即可获得web端登录效果

然后 注册 登录步骤略
API Host地址同样是 http://easytier.mydomain.com:11111
此处假设我注册的用户名是 abcdefg
步骤二:启动私有共享节点
当前环境中web服务和共享节点用的是同一台服务器
修改 easytier-share-center.service 中相关的变量内容
[Unit]
Description=EasyTier Service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
ExecStart=${path}/easytier-linux-x86_64/easytier-core -c ${path}/easytier-linux-x86_64/custom-shard-center.toml
[Install]
WantedBy=multi-user.target
custom-shard-center.toml
# 主机名,用于标识此设备的名称
hostname = "改成你的内容"
# 虚拟局域网的 IPv4 地址,如果为空,则此节点将仅转发数据包,不会创建 TUN 设备
ipv4 = ""
# 是否自动分配虚拟局域网的 IPv4 地址
dhcp = false
# 监听器列表,用于接受连接
# 如果改了监听器端口, 请同步修改防火墙相关端口出入站规则
listeners = [
"tcp://0.0.0.0:11010",
]
# 用于管理的 RPC 门户地址
rpc_portal = "127.0.0.1:15888"
# 网络名称和密码
[network_identity]
network_name = "改成你的内容"
network_secret = "改成你的内容"
# 程序日志设置
[file_logger]
# 日志等级
# off:关闭所有日志记录
# fatal:指出每个严重的错误事件将会导致应用程序的退出
# error:指出虽然发生错误事件,但仍然不影响系统的继续运行
# warn:表明会出现潜在错误的情形,有些信息不是错误信息,但是也要给程序员的一些提示
# info:在粗粒度级别上突出强调应用程序的运行过程,能够用于生产环境中输出程序运行的一些重要信息程序
# debug:指出细粒度信息事件对调试应用程序是非常有帮助的,主要用于开发过程中打印一些运行信息
# trace:用于展现程序执行的轨迹,如函数间的相互调用,关系函数的参数和返回值等现场信息
# all:打开所有日志记录
level = "off"
# 日志文件名称前缀
file = "easytier"
# 日志文件存放目录
dir = "opt/easytier/logs/"
# 其它设置
[flags]
# 连接到对等节点使用的默认协议
default_protocol = "tcp"
# 是否开启对等节点通信的加密,必须与对等节点相同
enable_encryption = true
# 是否使用多线程运行
multi_thread = true
# 线程数
multi_thread_count = 2
# 是否启用 IPv6 支持
enable_ipv6 = true
# 延迟优先模式,将尝试使用最低延迟路径转发流量,默认使用最短路径
latency_first = true
# 仅转发白名单网络的流量,支持通配符字符串。多个网络名称间可以使用英文空格间隔。
# 如果本地网络(使用 network_name 分配)不在白名单中,如果没有其他路由路径可用,流量仍然可以转发。
# 如果该参数为空,则禁用转发。默认允许所有网络。
# 例如:'*'(所有网络),'def*'(以def为前缀的网络),'net1 net2'(只允许net1和net2)"
relay_network_whitelist = "*"
# 是否禁用 P2P (直连)
disable_p2p = false
# 是否禁用 UDP 打洞(直连)
disable-udp-hole-punching = true
# 是否转发所有对等节点的 RPC 数据包,即使对等节点不在转发网络白名单中
# 这可以帮助白名单外网络中的对等节点建立 P2P 连接。
relay_all_peer_rpc = true
# 对每个网络进行限速,单位bps
foreign_relay_bps_limit = 100000000000
# 关闭 KCP 输入
disable_kcp_input = true
# 关闭 QUIC 输入
disable_quic_input = true
# 是否中继 KCP 流量,共享节点时不开
disable_relay_kcp = true
# 是否中继 KCP 流量,共享节点时不开
enable_relay_foreign_network_kcp = false
同时修改启动命令中对应的配置文件中的自定义内容 custom-shard-center.toml
同样复制到/etc/systemd/system/
sudo systemctl start easytier-share-center.service
如需开机启动
sudo systemctl enable easytier-share-center.service
步骤三:在需要组网的服务器或PC, 以web管理的方式启动
linux启动
修改 easytier-node.service 对应的变量内容
[Unit]
Description=EasyTier Service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
ExecStart=${path}/easytier-linux-x86_64/easytier-core \
--config-server udp://${mydomain}:${port1}/你web网页注册的用户名 \
--hostname aliyunserver
[Install]
WantedBy=multi-user.target
以本说明来说
ExecStart=${path}/easytier-linux-x86_64/easytier-core –config-server udp://easytier.mydomain.com:22222/abcdefg –hostname ${给你的组网节点起一个名字}
复制到/etc/systemd/system/
sudo systemctl start easytier-node.service
sudo systemctl enable easytier-node.service
windows启动
windows的部署方式我没有使用官方推荐的nssm,这个可以自己调, 我用的是winsw
下载easytier 的windows 发行包
其他使用 相关说明移步 https://github.com/winsw/winsw
拷贝 easytierNode.exe 和 easytierNode.xml 和easytier的可执行文件放在同一个目录
修改 easytierNode.xml 中的相关内容
<service>
<!-- ID of the service. It should be unique across the Windows system-->
<id>easytierNode</id>
<!-- Display name of the service -->
<name>easytierNode</name>
<!-- Service description -->
<description>easytier节点启动文件</description>
<!-- Path to the executable, which should be started -->
<executable>%BASE%\easytier-core.exe</executable>
<arguments> --config-server udp://easytier.mydomain.com:22222/abcdefg --hostname 当前组网的节点名称 </arguments>
</service>
例如
–config-server udp://easytier.mydomain.com:22222/abcdefg –hostname 当前组网的节点名称
在目录打开命令行,或命令行切换到easytier的可执行文件目录执行命令
easytierNode.exe install
easytierNode.exe start(也可以在系统服务中找到easytierNode 进行手动启动)
web页面配置

NetworkName 字段说明
此处需要的内容和共享节点配置
也就是启动共享节点时 custom-shard-center.toml 文件中以下部分的配置
[network_identity] network_name = “改成你的内容” network_secret = “改成你的内容”
这里的内容需要一致包括网络名称和密钥,能不能随便写可以自己试试, 我用的是一样的