ZeroTier 虚拟组网
ZeroTier 是一款即开即用的开源网络服务,它可以将不同物理地点的电脑、手机、网络设备,组成一个虚拟局域网,并拥有较高的安全性。而这些设备,就可以像在家中,或同一个办公室中一样。
直接使用官方的延迟比较高,测试是达到 300 – 500 ms。我当场就放弃了,后来发现可以自己搭建根服务器,有 Planet 和 moon 的区别。我的理解是
- planet 就是根节点。
- moon 就是用来加速国外节点的。
首先是搭建节点,有开源的 docker 容器,这是首选,并且配备了 UI 界面, nice
dockerhub https://hub.docker.com/r/keynetworks/ztncui
github https://github.com/key-networks/ztncui-aio
由于镜像没有提供使用说面,这里简单贴一下启动命令
docker run --restart=on-failure:3 -d --name ztncui -e HTTP_PORT=4000 -e HTTP_ALL_INTERFACES=yes -e ZTNCUI_PASSWD=123456 -p 4000:4000 keynetworks/ztncui
成功启动之后,访问 `4000` 端口就能看到 UI 界面了,可以先创建一个网络。
简单设置一下网络,可以直接生成。
开启自动分配 ipv4 地址
现在准备客户端加入到网络里,先试了下 windows 下的软件,很成功。
接下来准备测试一下 centos7 的环境下使用了。
直接使用 yum 安装时搜索不到了,要配置仓库地址
vim /etc/yum.repos.d/zerotier.repo
# 内容
[zerotier]
name=ZeroTier, Inc. RPM Release Repository
baseurl=http://download.zerotier.com/redhat/el/$releasever
enabled=1
gpgcheck=0
# 安装
yum install zerotier-one
# 启动守护线程
zerotier-one -d
# 加入网络
zerotier-cli join 18eexxxxxxxxxx
也可以使用这个命令安装
curl -s https://install.zerotier.com/ sudo bash
如果没有启动守护线程,则报错
zerotier-cli: missing port and zerotier-one.port not found in /var/lib/zerotier-one
如果一切顺利的话,你应该看到控制台输出了 200 join OK
zerotier-cli 支持的命令
info - 显示状态信息
listpeers - 列出所有对等点
peers - 列出所有对等点(更漂亮)
listnetworks - 列出所有网络
join <network ID> - 加入一个网络
leave <network ID> - 离开一个网络
set <network ID> <setting> - 设置网络设置
get <network ID> <setting> - 获取网络设置
listmoons - 列出卫星(联合根集)
orbit <world ID> <seed> - 通过任何成员根加入月球
deorbit <world ID> - 离开一个月亮
dump - 调试设置转储以获得支持
使用 ifconfig 命令,可以看到一张额外的网卡信息
zto2gfbdy4: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 2800
inet 10.59.xxx.xxx netmask 255.255.255.0 broadcast 10.59.205.255
inet6 fe80::7c83:aff:fec0:2438 prefixlen 64 scopeid 0x20<link>
ether 7e:83:0a:c0:24:38 txqueuelen 1000 (Ethernet)
RX packets 27 bytes 3213 (3.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 8 bytes 656 (656.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
尝试 ping
64 bytes from 10.123.107.30: icmp_seq=6 ttl=64 time=275 ms
64 bytes from 10.123.107.30: icmp_seq=7 ttl=64 time=275 ms
64 bytes from 10.123.107.30: icmp_seq=8 ttl=64 time=275 ms
64 bytes from 10.123.107.30: icmp_seq=9 ttl=64 time=275 ms
64 bytes from 10.123.107.30: icmp_seq=10 ttl=64 time=275 ms
scp 速度: 100% 4198KB 119.5KB/s 00:35 8
。。。。 网速 100kb 演示 300ms