zerotier
#linux
免费的内网组网工具,不同于nps等使用内网穿透的形式构建局域网。
安装
申请帐号
在官网上申请帐号,然后创建网络。选择private,这样只有在官网认证成功的IP才能成功组网,防止被人入侵。
Linux上安装
使用官网命令安装
1 | curl -s https://install.zerotier.com | sudo bash |
将当前设备加入zerotier局域网
1 | sudo ./zerotier-cli join [network id] |
启动zerotier
服务,并设置为开启自启
1 | sudo systemctl start zerotier-one.service |
手动构建
使用官网的脚本无法进行安装,这个时候可以直接下载github上的包,使用make进行安装。
安装完成之后,在ZeroTierOne目录下会生成zerotier-cli
命令,通过这个命令去进行申请组网:
1 | sudo ./zerotier-cli join [network id] |
之后就是去Zerotier官网,在申请的网络里,找到members,将对应的IP打上勾就完成了。
Zerotier启动的时候会默认占用9993端口。
手动开启
join是第一次加入网络时候的操作,之后重启电脑的时候需要使用以下命令才能执行
1 | sudo ./zerotier-one -d |
都是在ZerotierOne目录下执行
自动启动
不建议使用,因为不稳定,还是直接通过命令行安装比较好
需要将zerotier-one
复制到/usr/bin
目录下,这样就可以在全局模型是调用。
1 | [Service] |
之后需要将service服务复制到service文件夹下,保证与其他服务的权限一致。
1 |
|
设置默认启动
1 | sudo systemctl enable zerotier-one.service |
提速
Zerotier Moon
只需要有一个公网 IP 即可,起到辅助构建P2P连接的功能,不会进行数据的转发。
安装Zerotier
在云服务器上也许要安装Zerotier,这个时候可以使用官网的脚本:
1 | curl -s https://install.zerotier.com | sudo bash |
不知道为什么云服务器就不会出错。默认会安装在var/lib/zerotier-one
。并将其加入到同一个虚拟网络中
1 | sudo zerotier-cli join xxxxxxxx |
配置Moon
进入zerotier程序所在目录,默认为var/lib/zeroiter-one
。生成moon.json
配置文件:
1 | sudo zerotier-idtool initmoon identity.public >> moon.json |
编辑moon.json
配置文件。将配置文件中的 "stableEndpoints": []
修改成 "stableEndpoints": ["ServerIP/9993"]
,将 ServerIP
替换成云服务器的公网IP。
生成.moon 文件
1 | sudo zerotier-idtool genmoon moon.json |
将生成的000000xxxxxxxxxx.moon
移动到moons.d
目录(目录不存在则创建)。
.moon 配置文件的名一般为10个前导零+本机的节点ID
重启zeroiter-one
服务
1 | sudo systemctl restart zerotier-one |
使用Moon
通过以上方式,云服务器就具备了Moon的功能。之后就需要在其他设备上指定这个Moon中继。
普通的 Zerotier 成员使用 Moon 有两种方法,第一种方法是使用 zerotier-cli orbit 命令直接添加 Moon 节点ID;第二种方法是在 zerotier-one 程序的根目录创建moons.d文件夹,将 xxx.moon 复制到该文件夹中。本文使用第一种
Linux系统下使用Moon
1 | sudo zerotier-cli orbit [Moon节点ID] [Moon节点ID] |
Windows 系统下使用 Moon
Windows 系统的默认程序目录位于
C:\Program Files (x86)\ZeroTier\One
1 |
|
命令
命令 | 功能 |
---|---|
zerotier-cli listnetworks | 查看网络是否加入到了虚拟网络中 |
zerotier-cli listpeers | 查看所有的节点的信息 |
zerotier-cli leave [Network ID] | 离开指定的Network |
删除
当前并不知道如何重新生成机器ID,所以如果无法在Zerotier
官网删除本台机器的机器ID,那么就可以通过卸载Zerotier
并重新安装的方式获取一个新的机器ID。
1 | 删除软件 |