珂珂的个人博客 - 一个程序猿的个人网站

easytier 部署

    最近网上看到这个组网工具,由于车机无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 的。




上一篇:个人代码全部开源

下一篇:easytier 部署


0 评论

查看所有评论

给个评论吧