easytier有两种方式组网,一种是去中心化,各个客户端都运行服务组网互联。所有设置和配置都在本地,服务器只做牵头链接当通道建成即可退出组网。还有一种为中心化部署,客户端统一链接到服务器。由服务器下发配置进行组网互联
使用镜像easytier/easytier:latest
官方文档:/https://easytier.cn/guide/installation.html
国内没有代理尝试 docker pull m.daocloud.io/docker.io/easytier/easytier:latest
官方docker-compose:
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
- /etc/machine-id:/etc/machine-id:ro # 映射宿主机机器码
command: -i <ip> --network-name <用户> --network-secret <密码> -p tcp://<服务器地址>:11010easytier去中心化网络建立,建立在客户端没有公网地址。无法完成互联,此时需要外部服务器进行牵头。
传统服务器搭建,配置文件全部保存在服务器上。不存在于客户端本地,由服务器进行两端互访中转,如果连接成功将服务器停止。则连接断开无法通信
而easytier只参与前端的牵头,当连接建立成功那么就不需要服务器再参与流程。此时停止服务器流量不会中断,由于使用p2p打通。也不会受限于服务器带宽问题,而是受限于客户端的上传带宽

一般程序有三个文件,分别是easeytier-cli、easeytier-core、easeytier-web。主程序core、web页面是web、cli为中间件
web-embed为自建web控制台总文件
中心化部署
官方web控制台说明

使用中心化部署,由管方web控制台一键管理配置并下发。官方地址是https://easytier.cn/web#/auth,注册账户后即可使用
服务器使用-w 参数默认udp链接到conf-server.easytier.cn:22020地址
-w 后跟账户名称

由于我们自建服务器web控制台,使用easytier-web-embed文件。文件如果不带参数会以默认配置运行
默认配置为:
conf-server后端程序监听节点连接,默认端口22020,协议是udp
api-server作为中间件,负责前段和后端的通讯,默认端口11211
web前端默认端口为11210

所有参数说明

-d 指定数据库文件路径
-c 指定服务器监听端口,用于客户端链接
-p 指定服务器使用协议
-l 指定服务器web端口
-a 指定api端口服务端配置说明
由于web-embed文件只整合web控制台部分,所以主程序core需要单独运行。这里建议将两个运行文件都注册成后台服务
1.首先对easytier-web-embed文件进行chmod提权
root@VM-0-9-ubuntu:/home/ubuntu/easytier# sudo chmod 755 /home/ubuntu/easytier/easytier-web-embed
2.同时对easytier-core文件进行chmod提权
root@VM-0-9-ubuntu:/home/ubuntu/easytier# sudo chmod 755 /home/ubuntu/easytier/easytier-core
3.如下文将core服务注册成后台服务,启动运行。同时启动web控制台

/home/ubuntu/easytier/easytier-web-embed -c 22022 -p tcp
-p 指定运行协议 tcp或udp
-c 指定监听端口
更多参数使用--help查看帮助手册4.如下文将web服务注册成后台服务
创建新的服务文件 /etc/systemd/system/easytierweb.service,并根据需要修改 ExecStart 后面的命令行参数。
使用 sudo nano /etc/systemd/system/easytierweb.service创建服务文件,也可以直接将文件上传至服务器
[Unit]
Description=EasyTierWeb Service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
ExecStart=/home/ubuntu/easytier/easytier-web-embed -c 22022 -p tcp
[Install]
WantedBy=multi-user.target2.保存文件后,在命令行中执行以下命令以启用服务:
systemctl enable easytierweb.service
systemctl start easytierweb.service
systemctl stop easytierweb.service
可以使用start和stop命令启动服务
systemctl status easytierweb.service
也可以通过status查看服务状态
客户端链接至web控制台
Linux下启动命令

进入easytier-core的目录,输入命令 -w 制定服务器地址和账户
Windows上启动

Linux后台进程问题
由于是运行的程序文件,只要断开服务器链接。程序自动中断,这很不方便。于是需要将其添加为系统后台服务,记得以root账号操作
创建新的服务文件 /etc/systemd/system/easytier.service,并根据需要修改 ExecStart 后面的命令行参数。
使用 sudo nano /etc/systemd/system/easytier.service创建服务文件,也可以直接将文件上传至服务器
内容格式如下:
[Unit]
Description=EasyTier Service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
ExecStart=/root/easytier-core --ipv4 x.x.x.x --network-name xxx --network-secret yyy --peers tcp://peer_host:11010
[Install]
WantedBy=multi-user.target
注释说明:
Description=EasyTier Service: 提供了服务的简短描述,这里说明这是一个名为“EasyTier Service”的服务。
After=network.target syslog.target: 定义了该服务应在network.target和syslog.target之后启动。这确保了网络和日志记录服务已经可用时才启动此服务。
Wants=network.target: 表示希望network.target处于活动状态,但并不强制要求。如果network.target不可用,服务仍会尝试启动。
Type=simple: 这个选项表示当ExecStart=指定的进程开始后,即认为服务已成功启动。这是最简单的服务管理模式。
ExecStart:指定了启动服务的命令及其参数
WantedBy=multi-user.target: 这意味着该服务将被链接到multi-user.target,在多用户模式下自动启动。multi-user.target是一种典型的运行级别,对应于非图形界面的完整多用户系统环境。只需要修改ExecStart这一行即可
保存文件后,在命令行中执行以下命令以启用服务:
systemctl enable easytier.service
注意:必须在root账户下进行,不然权限不够
systemctl start easytier.service
systemctl stop easytier.service
可以使用start和stop命令启动服务
systemctl status easytier.service
也可以通过status查看服务状态

之后如果有需要改动的参数,那么现将服务停止systemctl stop easytier.service
之后进入/etc/systemd/system/easytier.service下修改参数
修改完成之后使用sudo systemctl daemon-reload来使 systemd 重新加载其配置文件的命令
之后重启服务systemctl restart easytier.service
去中心化组网
服务端配置启动-Linux
进入文件目录使用easyrier-core服务,之后使用如下命令启动
root@VM-0-9-ubuntu:/home/ubuntu/easytier# ./easytier-core -i 10.143.144.100 --network-name mogan --network-secret Mo141433--! -l tcp://0.0.0.0:11010 --relay-network-whitelist mogan --latency-first --enable-kcp-proxy
-i 指定虚拟IP地址
-d 自动分配虚拟地址
--network-name 指定组网名称
--network-secret 制定组网密码
-l,--listeners 指定监听地址,格式为tcp://0.0.0.0:11010
--relay-network-whitelist 指定白名单,白名单之外的不转发
--latency-first 开启延迟优先模式
--enable-kcp-proxy 开启kcp代理客户端配置-ui界面
客户端可以使用easytier管理器pro,因为某些bug直接使用gui程序会导致内存泄漏。电脑内存占用率飙升,所以使用管理器。同时支持配置更多

这里填写网络名称和机器名称,设置加密密码。服务器填写格式为tcp://xxxx:监听端口
子网代理这块是代理一整个网段,选择性开启

之后开启一些必要选项,多线程、加密、压缩、RPC辅助打洞、KCP代理,之后安装服务,启动服务即可

客户端配置-命令行模式
如果使用命令行方式启动,注意使用powershell。同时以管理员身份启动,不然无法创建tun网卡进行打洞链接
.\easytier-core.exe -i 10.143.144.110 --network-name mogan --network-secret Mo141433--! --relay-network-whitelist mogan --latency-first --enable-kcp-proxy -p tcp://122.51.1.172:11010
-i 指定虚拟组网ip
-d 自动获取组网ip
-n 制定代理子网例如:192.168.0.0/24
--network-name 指定组网名称
--network-secret 指定组网密码
--relay-network-whitelist 指定组网白名单
--latency-first 开启延迟优先模式
--enable-kcp-proxy 开启kcp代理
-p 指定链接到的地址格式为:tcp://122.51.1.172:11010
某些情况下,节点拥有公网的 IP 和 端口,但 EasyTier 无法正确识别 (比如 NAT 主机),可以使用 --mapped-listeners 配置公网 IP 和端口。 例如:
easytier-core --mapped-listeners tcp://8.8.8.8:12345 -l tcp://0.0.0.0:11010
该 EasyTier 实例监听本地的 11010 TCP 端口,且该端口被映射到公网的 12345 端口。其他节点会尝试连接到公网的 12345 端口。
客户端配置-nas端dockercompose部署
由于官方的compose配置带有自动更新,这部分功能暂时不需要。所以以下是修改过后的脚本
services:
easytier:
image: easytier/easytier:latest
hostname: nas ##设置主机名称
container_name: easytier ##项目名称
restart: unless-stopped ##自动重启
network_mode: host ##网络模式host
cap_add: ##给予权限
- NET_ADMIN
- NET_RAW
environment:
- TZ=Asia/Shanghai
devices: ##映射宿主机的 TUN/TAP 虚拟网络设备到容器中。TUN/TAP 通常用于实现虚拟私有网络(VPN)或虚拟网络桥接。
- /dev/net/tun:/dev/net/tun
volumes:
- /volume1/docker/docker/easytier/easytier:/root
- /volume1/docker/docker/easytier/machine-id:/etc/machine-id:ro # 映射宿主机机器码
command: -i 10.143.144.50 --network-name mogan --network-secret Mo141433--! -p tcp://122.51.1.172:11010 --relay-network-whitelist mogan --latency-first --enable-kcp-proxy -n 192.168.0.0/24
##启动命令参数配置和客户端命令行一样
评论