知识的荒漠

不积跬步无以至千里,不积小流无以成江海;千里之行,始于足下!

用户工具

站点工具


服务器:路由器:zerotier

ZeroTier帐号注册设置

参照:https://www.appinn.com/zerotier-one/
注册 ZeroTier,注册就不说了,登录后,进入 Networks 页面,创建网络,然后进入网络设置

本着「零基础」的玩法,我们依旧最小化设置:

输入网络名字,选择 Certificate (Private Network),其他默认即可,包括右侧的路由管理,就随他去吧。

windows下安装

下载客户端并安装:下载
安装好后,右击右下角图标,选择Join Network

输入上面获得的Network ID
刷新Networks 页面,把Members列表前面 Auth?栏勾上

ubuntu下安装

curl -s https://install.zerotier.com/ | sudo bash

padavan安装(内置sd)

注意如不外接U盘, 或无内置sd存储盘, 重启会丢失安装的程序, 要把程序放置在/etc/storage/里面
ssh登录,运行

opkg update
opkg install zerotier
zerotied -d #这个是启动命令
zerotier-cli join 你的网络ID#这个是加入的网络。200ok 表示成功 报错的话~遇见再说一般不是权限问题就是~版本问题
zerotier-cli listnetworks #获取ip值
#输出内容
200 listnetworks <nwid> <name> <mac> <status> <type> <dev> <ZT assigned ips>
200 listnetworks 12ac4a1e71c077c2 cwz c2:55:36:be:68:19 OK PRIVATE ztbtoyu2nt fd12:ac4a:1e71:c077:c299:9322:f6cf:7653/88,192.168.192.88/24

进入路由器自定义设置->脚本->在防火墙规则 (Emong’s Qos) 启动后执行: ,添加
iptables -I INPUT -i ztbtoyu2nt -j ACCEPT
iptables -A FORWARD -d 192.168.192.0/24 -j ACCEPT
iptables -A FORWARD -s 192.168.192.0/24 -j ACCEPT
\/\/保存后,可以就可以ping通192.168.192.88了,ztbtoyu2nt应该是路由表里面生成的虚拟接口id
不按上面,按下面代码添加也没问题(选1个添加哦…..):
iptables -I INPUT -i ztbtoyu2nt -j ACCEPT
iptables -t nat -A PREROUTING -d 192.168.192.88 -j DNAT –to-destination 192.168.1.1

iptables -I FORWARD -i ztbtoyu2nt -j ACCEPT
iptables -I FORWARD -o ztbtoyu2nt -j ACCEPT
iptables -t nat -I POSTROUTING -o ztbtoyu2nt -j MASQUERADE

进入/opt/etc/init.d/,新建S50zerotier.sh,输入以下内容
启动脚本(这个是路由器开启时自动启动zerotier的脚本)

#!/bin/sh
ENABLED=yes
PROCS=zerotier-one
ARGS="-d"
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
. /opt/etc/init.d/rc.func
logger -t "zerotier-one" "zerotier-one start"

设置权限为755

错误解决办法

如果运行zerotier-cli join ID显示0 join,运行

zerotier-cli info
#看是否输出是
Error connecting to the ZeroTier service:
Please check that the service is running and that TCP port 9993 can be contacted via 127.0.0.1.

如是以上输出,那进入路由器自定义设置->脚本->在防火墙规则 (Emong’s Qos) 启动后执行: ,看是否有

iptables -t nat -A POSTROUTING -j MASQUERADE &
#N2N安装的时候添加的...,注释掉后N2N会无法访问

或者

iptables -A POSTROUTING -t nat -j MASQUERADE

如有都注释掉(前面加#),在运行

zerotier-cli info
#输出
200 info 22f6cf7653 1.2.12 ONLINE

moon配置

zerotier的官方服务器在国外,国内客户端使用时延迟较大,网络高峰期时甚至各个客户端节点之间访问不了。此时,“自定义根服务器”,又称 moon中转服务器就显得非常重要,它的主要功能是通过自定义的服务器作为跳板加速内网机器之间的互相访问。
zerotier定义了几个专业名词:
PLANET 行星级的服务器,zerotier各地的根服务器,有日本、新加坡等地。
MOON 卫星级服务器,用户自建的私有根服务器,起到中转加速的作用。
LEAF 相当于各个枝叶,就是每台连接到该网络的机器节点。
充当MOON的机子最好有公网IP,现在我们尝试用在padavan搭建一个moon中转:

cd /opt/var/lib/zerotier-one/ #路由软连接的,实际路径为/media/AiCard_01/opt/var/lib/zerotier-one
#cd C:\ProgramData\ZeroTier\One #windows下定位到这里
zerotier-idtool initmoon identity.public >>moon.json #生成moon.json文件

winscp登录修改moon.json,将“stableEndpoints”: [ ] 修改下,放上公网ip地址及zerotier的端口:
重点一:生成的id:22f6cf7653与上面zerotier-cli info输出的应该一致,不一致应该是路径错了

{
 "id": "22f6cf7653",
 "objtype": "world",
 "roots": [
  {
   "identity": "22f6cf7653:0:03577cdd2129d3f0e5d689e54a7c5a221d50e8b0497c745a85301276e8aadf6eae10fa185913753b61f61926aa22cb6e72b285eb0f40c4ef1eea414edd5e969a",
   "stableEndpoints": ["公网ip地址/9993"]
  }
 ],
 "signingKey": "4224275d0a577dbf5a3e459f1b48c121b9dc943bf163329855a8cfcaf0519e36676878aaa1984c6a6552115fe1ff766945611de0373b25a5dead4682c5c063f7",
 "signingKey_SECRET": "5227bd8e8341ef1fea2a0c9f13090f3f64c54daf72fea4040532b6ee170fa751841f5001df64e5d849e2b933391a0c056a4dc4a0fea1212d32f214012f13dc74",
 "updatesMustBeSignedBy": "4224275d0a577dbf5a3e459f1b48c121b9dc943bf163329855a8cfcaf0519e36676878aaa1984c6a6552115fe1ff766945611de0373b25a5dead4682c5c063f7",
 "worldType": "moon"
}

修改完保存,执行:

zerotier-idtool genmoon moon.json
#显示结果
wrote 00000022f6cf7653.moon (signed world with timestamp 1550806005779)
#目录下生成了00000022f6cf7653.moon的文件
mkdir moons.d #新建文件夹
mv 00000022f6cf7653.moon moons.d #移动到moons.d文件夹
killall -9 zerotier-one #重启
zerotier-one -d

客户端操作(以管理员运行cmd):

cd C:\WINDOWS\system32 #好像并非必须,下行命令都可以执行
zerotier-cli orbit 22f6cf7653 22f6cf7653

如果自动加载moon文件失败,请手动拷贝00000022f6cf7653.moon文件到常规节点的机器上的moons.d文件夹里(如不存在新建moons.d文件夹)

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

重启 zerotier-one(win下重启下电脑吧)

zerotier-cli listpeers #查看节点列表,出现根服务器的MOON节点表示成功
#结果如下


终于成功搞定moon~

服务器/路由器/zerotier.txt · 最后更改: 2020/10/04 11:24 由 caiweizhi