最近网上看到这个组网工具,由于车机无ipv6 ,家里是ipv6 ,但有一台阿里云公网ipv4 服务器,以前用taiscale 和 zerotier 貌似没组成p2p, 这个easytier看起来部署还更简单,于是尝试下。
首先在阿里云服务器上安装,我这里尝试脚本一键安装因为网络墙问题没成功,所以换种方式。我的阿里云服务器ubuntu无gui,所以这里下载的cli ,是zip提供的easytier-linux-x86_64-v2.4.5.zip, 解压后上传到服务器,我这里上传到了/home目录
然后
./easytier-core --version
官方有有一键注册服务,但我使用的是systemd

将服务安装为 Linux Systemd 服务
创建新的服务文件 /etc/systemd/system/easytier.service,并根据需要修改 ExecStart 后面的命令行参数。
官方是这样的

但我这里可能由于之前跑了一键安装脚本,这个目录下是easytier@.service

我的内容如下
[Unit] Description=EasyTier Service Wants=network.target After=network.target network.service StartLimitIntervalSec=0 [Service] Type=simple WorkingDirectory=/opt/easytier ExecStart=/opt/easytier/easytier-core -c /opt/easytier/config/default.conf Restart=always RestartSec=1s [Install] WantedBy=multi-user.target
启用服务
systemctl enable easytier.service #我这里是easytier@default ,下面同理
启动和停止
systemctl start easytier.service systemctl stop easytier.service
/opt/easytier/config/default.conf 内容
instance_name = "default" dhcp = true listeners = [ "tcp://0.0.0.0:11010", "udp://0.0.0.0:11010", "wg://0.0.0.0:11011", "ws://0.0.0.0:11011/", "wss://0.0.0.0:11012/", ] exit_nodes = [] rpc_portal = "0.0.0.0:0" [[peer]] uri = "tcp://kecq.com:11010" [network_identity] network_name = "xxxxxx" network_secret = "xxxxxx" [flags] default_protocol = "udp" dev_name = "aliyun" # 这个好像没用 enable_encryption = true enable_ipv6 = true mtu = 1380 latency_first = false enable_exit_node = false no_tun = false use_smoltcp = false foreign_network_whitelist = "*" disable_p2p = false p2p_only = false relay_all_peer_rpc = false disable_tcp_hole_punching = false disable_udp_hole_punching = false host_name = "aliyun-chengdu" # 这个好像也不起作用 改成hostname 也不行?
此时服务器就部署好了,记得在阿里云官网打开防火墙。
家里ubuntu 也按照上面同理。但不知为何执行文件路径在/opt/easytier
/opt/easytier/config/default.conf 文件内容
instance_name = "default" dhcp = true listeners = [ "tcp://0.0.0.0:11010", "udp://0.0.0.0:11010", "wg://0.0.0.0:11011", "ws://0.0.0.0:11011/", "wss://0.0.0.0:11012/", ] exit_nodes = [] rpc_portal = "0.0.0.0:0" [[peer]] uri = "tcp://kecq.com:11010" #阿里云地址 [network_identity] network_name = "xxxxxx" #填写上面阿里云服务器一样的 network_secret = "xxxxx" #填写上面阿里云服务器一样的 [flags] default_protocol = "tcp" dev_name = "ubuntu-12900h" enable_encryption = true enable_ipv6 = true mtu = 1380 latency_first = false enable_exit_node = false no_tun = false use_smoltcp = false foreign_network_whitelist = "*" disable_p2p = false p2p_only = false relay_all_peer_rpc = false disable_tcp_hole_punching = false disable_udp_hole_punching = false
/etc/systemd/system/easytier@.service 文件内容
[Unit] Description=EasyTier Service Wants=network.target After=network.target network.service StartLimitIntervalSec=0 [Service] Type=simple WorkingDirectory=/opt/easytier ExecStart=/opt/easytier/easytier-core -c /opt/easytier/config/%i.conf -n 192.168.31.0/24 --enable-quic-proxy --use-smoltcp --hostname ubuntu12900h Restart=always RestartSec=1s [Install] WantedBy=multi-user.target
ExecStart 后面我加了一些参数。
然后就是注意打开下防火墙。
当然也可以在家里windows虚拟机上部署,家里ubuntu和windows 只需要部署一个就可以了,windows参照官网,可以直接使用gui的
然后说说在外面访问,我家里的成都电信宽带被拉入了限速Ip , 我其实并没有大流量上传也没跑pcdn ,这个后面准备投诉
在外面用手机流量直接防护家里Ipv6 ,上传是被限制的,而且我发现居然外面网家里直接用ipv6上传也是被限制的(用iperf3)....
然后尝试了ws 和wss协议,发现wss 被限制,ws貌似没有限制
如何强制使用ws协议,public server 貌似用tcp并不影响

是家里windows或ubuntu 启动时强制加上 -l ws:11011
.\easytier-core -d --network-name easytier-kecq --network-secret fangfang -p wss://kecq.com:11012 -n 192.168.31.0/24 --enable-quic-proxy --hostname winserver2025 -l ws:11011
并且外面客户端高级设置监听urls也只选ws

但发现外面用车机ipv4 的话p2p不容易打通,打通后会降级成udp
但外面手机卡ipv6 是可以打通,此时走ws协议,然后用分配的虚拟ip 跑iperf3 -c 家里局域网ip -R 测试发现速度正常,相比来说ipv6 反而被限制。
至此如果使用车机ipv4,实在没搞定家里宽带限速问题,不折腾了。
另外用阿里云iperf3打流,发现阿里云下载带宽也没像上传带宽那样限制死3M ,至少能跑到70mbps 的。
珂珂的个人博客 - 一个程序猿的个人网站