参考文章:B站-「EasyTier」使用SRV TXT HTTP重定向获取对端IP端口
类似工具:
之前发过一篇关于VNT异地组网的工具,得益于其支持TXT解析,因此可以实现完全私有化部署。但是在后来的版本,easyiter也更新上了TXT、SRV和HTTPS解析,并且其去中心化的部署方式相较于VNT来说是更具优势的。其还具备KCP、QUIC传输等新特性,能够缓解如今QoS盛行的网络环境。不仅如此,easytier还衍生出了几个游戏版本的GUI页面,能够为异地局域网联机变得简单。
一、GUI使用
在官方下载页面就可以下载全部版本的可执行程序点我打开下载页面

得益于跨平台的特点,easytier在PC的三端的都是统一界面,因此这里拿linux进行举例,其他的同理
因为这些功能内容比较容易理解,并且本文章的重点不在此,因此这里配置参数部分我就简单说一下我的配置,如果需要详细配置的话可以参考官方文档

三、命令行使用
在github页面下载对应系统版本的程序到本地即可运行,点我打开
命令行的话建议是使用导入配置文件的方式启动。而关于配置文件,我们可以直接在GUI上面编辑好配置后直接粘贴到文本上是最方便的

将配置文件保存到本地.conf文件即可使用easytier-core -c 你的easytier配置文件路径即可运行,功能和easytier客户端一致。可以使用easytier-cli来查询正在运行的easytier程序情况
四、OpenWrt使用
在github页面下载对应系统版本的程序到本地即可运行,点我打开
在openwrt上依次安装好easytier核心,Web管理,中文包

安装完成后在VPN栏目找到easytier

同上面的配置一样,这里不再多描述配置情况
有一个要注意的是,如果你有自建中转节点的需求,可以把对端节点不填,这样可以搭配后续的自建中转节点来实现组网,当然也可以把默认的官方节点加上,来实现保活

四、搭配LUCKY自建中转节点
我们可以在lucky内开放一个stun穿透端口,从而实现自建中转节点
1、创建穿透端口
(1)、TCP穿透
在lucky->STUN内网穿透下创建一条新的穿透规则,穿透协议选择为TCP,目标地址填写你安装了easytier的设备的ip地址

(2)、UDP穿透
udp穿透和tcp的内容一致,只不过穿透类型改成了UDP而已

当然你也可以不使用Lucky内置端口转发,改为手动开启对应的防火墙和端口转发,从而提高easytier转发效率

2、固定穿透stun端口号
因为Easytier支持通过DNS的TXT记录,SRV记录和HTTP请求来获取链接,从而获取对端设备的直连IP+端口号,因此我们可以在lucky创建对应的解析记录或者Web规则来实现动态解析地址
(1)、TXT记录
在lucky->动态域名->添加ddns记录来添加一个txt记录,记录名为你要存放ip:port的域名,记录类型为TXT,记录内容为lucky的全局变量tcp://{STUN_easytier_IP}


此外,建议再添加上udp的TXT解析记录

这样,其他设备在连接openwrt上的easytier就可以使用txt://ett.a.com或txt://etu.a.com来访问了
(2)、SRV记录
这个记录的话配置和灵活性没有TXT高,因此这里不展开说明如何实现,如果有需要可以看置顶的参考文章里面有详细说明如何实现
(3)、HTTP记录
http相较于DNS的TXT记录的优势在于动态变化的端口可以实时解析,不会因为网络问题导致的dns缓存记录滞后性,但是前提是需要搭建好Web的反向代理和STUN穿透
在lucky->web规则->添加子规则来创建一个站点,服务类型选择为文本输出,前端地址设置为你的easytier解析地址,这里的这个地址可以和你的TXT记录一致,因为一个是A/AAAA记录,另一个是TXT记录,两者不冲突

同理udp端口也是一样的,这里不再过多叙述了
在别的设备上对端地址填写格式为:https://ett.a.com或者https://etu.a.com即可完成解析
注意,使用http的话需要你已经会使用stun穿透来实现http页面的访问(即可以通过固定的的链接来返回动态的ip:prot),不管是cloudflare的重定向还是使用CDN的回源访问,都是可以的。
甚至你还可以直接更新CDN上面的静态站点Pages/workers来实现ip+端口号的返回也可以的(免去本地的Web站点,这里仅作为一种思路,不打算讲如何实现,有需要就留言)

五、搭配CDN抵御QoS
如果你的站点是使用CDN进行回源访问的话(阿里云ESA回源文章参考丨腾讯EO回源参考),也可以搭配CDN的WebSocket实现CDN流量中转访问,以绕过运营商QoS的问题
在lucky->web服务新建一个子规则,服务类型为反向代理,前端地址为你用于传输托管在cdn上的域名etw.a.com,后端地址填写为你的easytier ws端口的地址


这样子其他设备就可以使用wss://etw.a.com来通过CDN中转来访问openwrt了,只不过这速度和延迟都比较大
总结
easytier是国内目前社区活跃比较高的组网工具,并且衍生出了非常多第三方组网工具,用于局域网联机(Minecraft等)。easytier支持的特性比较多,但是对于博主而言,工具太复杂反而并不是一件好事,因此个人还是更喜欢使用vnt做为主力组网工具,当然,这两工具同时使用也是没有问题的,只要区分好内部网段就可以了(VNT:11.0/24,easytier:111.0/24)。
顺带一提,不知道是不是easytier内部路由规则的问题,如果linux客户端本地网段为192.168.1.0/24,想访问对端设备的192.168.1.0/24的子网是没办法通过VPN访问的,会优先访问本地的网段。而vnt就没有这个问题,vnt内部路由规则会高于本地路由表的规则,并且vnt可以实现更精确的路由转发规则,指定某个网段发往某个对端设备,而不是像easytier一样全部对端设备共享的子网不能重复,否则没办法精确路由某个对端的子网,因此综合下来还是vnt好用一点











还是你的文章看的舒服,前面vnt的教程组网了,等你更新这个,就是喜欢折腾
感谢!你的鼓励,是对我最大的支持🤗
大佬,意思是可以用stun来当作et的服务器?但是穿透得到的这个端口和ip会经常变动呢。
这个使用dns的txt、http、固定端口号就可以了
大佬txt我学会了,http我不太明白。可以请教下详细设置么
具体是哪里不懂,详细设置指的是什么?
是easytier客户端的对端地址怎么填写吗?
还是http类型的stun穿透端口号这里不懂
我懂了,如果用http,得要有公网才行。。。。。。