这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

easytier

官方文档地址:https://easytier.cn/

1 - 完全私有化部署

本说明出自非官方。是个人的搭建经验总结,仅代表个人见解, 有问题欢迎讨论

本说明环境基于 阿里云ECS ,linux发行版 ubuntu2204, easytier版本 v2.4.5

下载地址请移步官方网站

本说明从共有四个步骤

  1. 搭建web管理平台服务

  2. 启动私有共享节点

  3. 在需要组网的服务器或PC,以web的方式启动服务(Linux 和 Windows 分别进行配置说明)

  4. 其他组网工具演示

先下载对应的二进制包: 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页面配置

web页面配置

NetworkName 字段说明

此处需要的内容和共享节点配置

也就是启动共享节点时 custom-shard-center.toml 文件中以下部分的配置

[network_identity] network_name = “改成你的内容” network_secret = “改成你的内容”

这里的内容需要一致包括网络名称和密钥,能不能随便写可以自己试试, 我用的是一样的