EasyTier 一款内网穿透工具 让我眼前一亮
由于部分区域的网络受到攻击,因此一些单位的网络安全级别提升到了令人发指的级别。因为我一开始接触的就是tailscale,对这个比较熟悉,其他的没有怎么尝试,感觉tailscale打洞能力也较强,能够穿透,并且功能比较强大,可代理内网流量,节点出口,安全dns等,最近发现又可以docker部署,更加方便了。但是单位的网络安全提升让我从11月起就告别的速度飞起的直连,只能通过中转服务器了,那个ping是受不了的,300ms起。因为最近忙,也没空研究这个,昨天意外发现某博主详细介绍了nat的几种类型,于是又开始不淡定了,准备试试了。
一、检测NAT类型
网上随便搜索,有很多的,
经过检测,我们单位这种网络,已经属于灾难级别了:
大部分穿透软件对于NAT3-NAT4需要人品爆发才行,NAT4-NAT4这种基本是直接放弃。按上海移动目前的策略是NAT3,所以感觉还是有一线希望的。
二、easytier介绍
https://easytier.cn/guide/network/oneclick-install-as-service.html
以上是官方的教程啥的,官网显示,居然说部分NAT4-NAT4也能打通。
三、部署简单介绍
小白用户直接下载windows客户端即可,填写“网络名称”和“网络密码”选择公共服务器即可,入手非常简单。“高级设置”中也有丰富选项。
凡是需要加入网络的,都选择填写同样的参数,然后点击“运行网络”就可以了,多台电脑瞬间就可以组网了。如果显示“p2p”然后延迟很低的话,就是打洞成功了,互访速度很快。我看了看飞牛nas应用中心是有这款软件的,一些istoreos也是有的,一些openwrt也会安装,实在没有的看我以下内容手动安装。
四、openwrt上安装使用
现在这个年代,allinone的方案实在太多,虚拟机遍地横行,因为入门时候我玩的是openwrt,有点怀旧,又因为目前几个经常待的地方都有op,就准备简单部署一下,高级功能后面研究。
openwrt中查看硬件架构,选择合适的easytier版本。
uname -m
我这里是显示
x86_64
因此选择了相应版本(https://easytier.cn/guide/download.html)下载。
然后要么sftp,要么openwrt自带的上传工具啥的,将文件上传到openwrt上。我放在了/root/easytier-linux-x86_64/
先nano一个启动文件,或者vi编辑器也是行的:
nano /etc/init.d/easytie
内容如下:
#!/bin/sh /etc/rc.common
START=99
STOP=10
start() {
echo "Starting EasyTier..."
# 使用 nohup 来确保程序在后台持续运行,即使会话结束
nohup /root/easytier-linux-x86_64/easytier-core -d --network-name zzz --network-secret zzz -p tcp://public.easytier.cn:11010 -n 192.168.1.0/23 &>/dev/null &
}
stop() {
echo "Stopping EasyTier..."
killall easytier-core
}给此文件添加可执行权限:
chmod +x /etc/init.d/easytier
设置开机自动后台运行:
/etc/init.d/easytier enable
可以查看,当前自动运行的服务有哪些:
for F in /etc/init.d/* ; do $F enabled && echo $F on ;done
也可以不用重启直接启动:
/etc/init.d/easytier start
一般我为了验证是否配置成功,总是reboot重启一下的。
然后在另一台windows电脑上验证一下:
看到已经组网成功了。希望不要让我失望。我在op上部署时候加了一个参数"-n",可以访问所有该网段内设备的服务(这个太重要了),类似tailscale里的--advertise-routes。
五、自建公共服务器
version: "3.8" services: watchtower: # Used to automatically update the easytier image, delete this part if not needed command: --interval 3600 --cleanup --label-enable container_name: watchtower environment: - WATCHTOWER_NO_STARTUP_MESSAGE image: containrrr/watchtower restart: always volumes: - /var/run/docker.sock:/var/run/docker.sock easytier: restart: always labels: com.centurylinklabs.watchtower.enable: "true" privileged: true mem_limit: 0m container_name: easytier hostname: easytier network_mode: host volumes: - /etc/easytier:/root environment: - TZ=Asia/Shanghai image: easytier/easytier:latest command: -i <ip> --network-name <user> --network-secret <password> -e tcp://<server address>:11010 -l tcp://<server address>:11010
watchtower不是必须的,近期这个镜像有点问题,导致其他所有容器会出问题,建议暂时可以别装。另外这个docker-compose文件并不是建立“服务器”专用的,只要改一改最后一条命令也可以用作普通peer,easytier本身就是“去中心化”的。这样以后就更方便部署了,只要可以玩docker的,都能简单部署。
2025.12.20晚:
以上内容是针对x86的openwrt,经过测试,aarch64架构的并不适用,手上有一台R4S,cpu是rockchip rk3399的!!!
是aarch64架构的,chatgpt说需要使用的是 procd 机制
easytier的具体写法如下:
#!/bin/sh /etc/rc.common
START=99
STOP=10
USE_PROCD=1
PROG="/bin/easytier-core"
start_service() {
procd_open_instance
procd_set_param command \
$PROG \
-i 100.127.127.88 \
--private-mode true \
--hostname R4S.YP.home \
--network-name zzz \
--network-secret zzz \
-p tcp://vps's ip \
--socks5 10777 \
-n 192.168.1.0/24
# 进程异常退出后自动拉起
procd_set_param respawn 3600 5 5
# 可选:写日志
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
}
stop_service() {
killall easytier-core
}亲测可用,又可以非常快乐的玩耍了。
如果你和我一样 不需要云端web管理或者本地自建web管理的话,只需要用到easytier-cli和easytier-core,随便找个机器就能看到所有节点的status。当然不能吊死在一棵树上,其他方式也要部署一下,给自己留个后路。
2025.12.21.FNOS中如果是应用中心安装此软件的话,它会有一个config.yaml文件具体放置位置是:
/var/apps/EasyTier/shares/EasyTier/etc/config.yaml
可以这样简单配置:
hostname = "name" instance_name = "any" dhcp = false ipv4 = "10.10.10.10" listeners = [ "tcp://0.0.0.0:11010", "udp://0.0.0.0:11010", "wg://0.0.0.0:11011", ] # rpc_portal = "0.0.0.0:0" [network_identity] network_name = "name" network_secret = "mima" [[peer]] uri = "tcp://fuwuqiIP" [flags] latency_first = true
2025.12.22晚
自建的服务器一开始玩的好好的,后面突然发现问题了,发现网络又开始封锁了,在上面自建服务器这里-l tcp://ip:11010 -l udp://ip:11010 -l wg://ip:11011 -l ws://ip:11011 -l wss://ip:11012都加上,这样在某些客户端场景下部署时候-p 然后把这些tcp udp ws wg wss都加上即可,总不能全部封掉吧。
看到有人利用cloudflare的tunnels来部署一个位于内网“服务器”的,用的ws和wss协议。准备继续深挖一下,给那些没有vps的小伙伴搞一下。
