szerotier主要是用在公司没有公网IP,但是仓库那边有一个同事需要连接到这边的一个文件服务器,总是麻烦同事用QQ或者微信传。没有公网IP,一般的vpn无法搭建,蒲公英路由器或者蒲公英好像有个这样可以异地组网的,不过试用了一下很久没有连起来。于是…
先去 http://www.zerotier.com/download.shtml 注册一个免费的账号,免费账号可以互联100台机器,应该够用了,然后下载对应的版本进行安装:
centos7 直接用官网的命令安装
1 | curl -s 'https://pgp.mit.edu/pks/lookup?op=get&search=0x1657198823E52A61' | gpg --import && \ |
For those who are a bit more careless lazy brave, the script also works without GPG:
1 | curl -s https://install.zerotier.com/ | sudo bash |
登录你刚刚注册的账号,先新建一个网络,然后进入该网络:
其他的设置默认就好
然后回到centos,输入如下命令:
1 | sudo zerotier-cli join NetWorkID--你的网络ID |
如果返回 200 join OK
表示添加网络成功。
可以输入 ip addr
查看自己在这个虚拟网络中分配到的私有IP,也可以在网页端看到。
然后回到网页端在networID那里往下滚动找到这里,在自己的主机前面打钩进行授权:
同样的方法在其他客户端进行操作,Windows端,下载下来后安装好后右下角图标上面右键点击:
点join Network然后输入网页端的网络ID,然后在网页端打钩授权即可。
如果有问题,看看zerotier服务和zerotier的虚拟网卡启用没有
以下参考网址 https://zczc.cz/2018/03/14/ZeroTier-moon-%E8%AE%BE%E7%BD%AE%E6%95%99%E7%A8%8B/
zerotier-one 服务器在国外,有时网络比较慢,可以搭建一个moon服务器看看:
环境
机器A(moon):
- 公网IP:1.2.3.4
- 系统centos7
机器B
内网机器
1.A机器操作,生成并修改 moon.json 文件
首先登陆到机器 A 上,进入到目录
/var/lib/zerotier-one
。运行命令1
zerotier-idtool initmoon identity.public >>moon.json
这样当前目录就会生成一个moon.json文件,可以
ls
看看,文件内容如下:其中
id
为机器 A 在 ZeroTier 中的 id,本文为deadbeef00
。
修改"stableEndpoints"
为机器 A 的公网的 ip。如:1
"stableEndpoints": [ "1.2.3.4/9993","2001:abcd:abcd::1/9993" ]
若公网机器没有 IPv6 地址,则将其修改为如下,注意端口号写法
1
"stableEndpoints": [ "1.2.3.4/9993" ]
2.生成签名文件**
修改完
moon.json
后,执行命令1
zerotier-idtool genmoon moon.json
3.将 moon 节点加入网络
在机器 A 中的 ZeroTier 目录中建立子文件夹
moons.d
不同系统下的 ZeroTier 目录位置:
- Windows:
C:\ProgramData\ZeroTier\One
- Macintosh:
/Library/Application Support/ZeroTier/One
(在 Terminal 中应为/Library/Application\ Support/ZeroTier/One
) - Linux:
/var/lib/zerotier-one
- FreeBSD/OpenBSD:
/var/db/zerotier-one
将在机器 A 生成的
000000deadbeef00.moon
拷贝进moons.d
文件夹中,并重启 ZeroTier(此步好像有些许 bug,重启电脑为佳)- Windows:
B机器操作将内网机器连接上 moon 节点
方法一
在机器 B、机器 C 中的 ZeroTier 目录中建立子文件夹
moons.d
不同系统下的 ZeroTier 目录位置:
- Windows:
C:\ProgramData\ZeroTier\One
- Macintosh:
/Library/Application Support/ZeroTier/One
(在 Terminal 中应为/Library/Application\ Support/ZeroTier/One
) - Linux:
/var/lib/zerotier-one
- FreeBSD/OpenBSD:
/var/db/zerotier-one
将在机器 A 生成的
000000deadbeef00.moon
拷贝进moons.d
文件夹中,并重启 ZeroTier(此步好像有些许 bug,重启电脑为佳)方法二
在机器 B、机器 C 上执行
1
zerotier-cli orbit deadbeef00 deadbeef00
在除服务器其他的机器输入:
1
2
3
4
5sudo zerotier-cli listpeers
200 listpeers
200 listpeers 8841408a2e 159.203.2.154/9993;7723;2322 244 1.1.5 PLANET
200 listpeers 9d219039f3 154.66.197.33/9993;1527750499073;2055 479 1.1.5 PLANET
200 listpeers deadbeef 00 10.0.0.2/33389;2552;7773 189 1.2.10 MOON如果根服务器出现最后一行的MOON节点表示成功
补充: 虽然搭建了MOON服务器,我们还是需要借助zerotier network,也就是需要先通过zerotier官网创建一个network,并且内网节点需要使用
join
命令加入该网络才能实现内网节点的互通,换句话说MOON节点只起到了加速的作用,虚拟网络的分配和管理还是需要zerotier服务端参与- Windows:
zerotier 常用命令:
1
2
3
4
5
6
7
8
9
10
11
12
13# zerotier-cli -h
# zerotier-cli -v
# zerotier-cli join NetworkID
# zerotier-cli set NetworkID allowManaged=1
ip addr
状态查看
# zerotier-cli listnetworks
# zerotier-cli -v
# zerotier-cli -h
查看是否在线
# zerotier-cli info
重启服务
# systemctl restart zerotier-one