zerotier简明教程

最近使用zerotier替换了frp来实现内网穿透,zerotier是一个软交换机,使用zerotier可以让多台内网机器组成一个局域网。

首先要安装 zerotier-one 这个软件包,如果是ArchLinux,直接运行:

$ sudo pacman -S zerotier-one

如果是Ubuntu/Debian/CentOS,则运行:

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

注:如果是Windows或者macOS、Android、iOS等,那么可以在 https://www.zerotier.com/download/ 下载zerotier

之后就完成了安装,然后我们要启动zerotier,并且让他开机自启动,运行:

$ sudo systemctl start zerotier-one.service$ sudo systemctl enable zerotier-one.service

例如我有两台内网机器,于是都按照上面的描述进行了安装和启动。接下来要做的事情是到 https://my.zerotier.com/里注册账号并且登录,然后创建一个Network,创建之后点到这个网络里,拉到最上面,选择 Private(私有网络) ,这样别人加入的时候就需要认证,如果想改名字的话,改个名字,其他不用动。然后复制 Network ID,就是拉到最上面的时候可以看到的一个类似 83048a0632246d2c 的字符串。

然后在两台内网机器上执行:

$ sudo zerotier-cli join 83048a0632246d2c

加入之后他们就启动了,但是还连不进我们创建的网络,因为我们选择了 Private(私有网络) ,我们还需要到 https://my.zerotier.com/上面对接入的机器打勾,拉到 Members 这一节,把前面的两个勾勾选上。

这个时候执行一下 ip a 你会发现多了一个叫做 ztuzethlza 或者类似名字的设备,还有IP地址,这就是zerotier组建的局域网的IP地址,但是这个时候你如果直接连接另外一台机器的话可能会非常慢,所以为了加速,我们还需要一台在国内的,或者是在国外但是访问速度相当快的机器做转发。

搭建中转机器(moon)

首先把中转机器按照上述步骤一起加入网络,然后执行:

$ cd /var/lib/zerotier-one/$ sudo zerotier-idtool initmoon identity.public > moon.json

接下来编辑一下 moon.json,把 'stableEndpoints': [] 这一节里加入中转机器的公网IP,例如 'stableEndpoints': ['1.2.3.4/9993'],其中9993是默认监听的端口,接下来要把9993端口的防火墙放开(注意是UDP),如果你的机器外边还有防火墙的话,也要一起放开,例如阿里云的机器就有防火墙规则,要一起把对应端口的UDP流量放行,此后,我们要生成moon的配置:

$ sudo ufw allow 9993/udp$ sudo zerotier-idtool genmoon moon.json

接下来把中转服务器的 zerotier-one 重启:

$ sudo systemctl restart zerotier-one

加入moon

注意我们搭建moon的时候有一个 moon.json,我们把内网机器加入这个moon的时候,需要其中的一个id:

$ grep id /var/lib/zerotier-one/moon.json | head -n 1 'id': 'xxxxxxxxxx',

复制这个id,然后在内网机器执行:

$ sudo zerotier-cli orbit xxxxxxxxxx xxxxxxxxxx

注意,xxxxxxxxxx 要两遍。此后重启 zerotier,完毕。等一会儿之后,zerotier局域网内的机器就可以互相访问了,延时非常低:

$ ping 192.168.1.111PING 192.168.1.111 (192.168.1.111) 56(84) bytes of data.64 bytes from 192.168.1.111: icmp_seq=1 ttl=64 time=35.0 ms64 bytes from 192.168.1.111: icmp_seq=2 ttl=64 time=37.1 ms64 bytes from 192.168.1.111: icmp_seq=3 ttl=64 time=36.9 ms^C--- 192.168.1.111 ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 4msrtt min/avg/max/mdev = 35.039/36.369/37.145/0.944 ms

注:如果是Windows/macOS/Android/iOS,那么可以使用所安装的图形客户端加入网络。


参考资料:

(0)

相关推荐

  • 狂揽2500星,开源十六进制编辑器登顶GitHub热榜

    作者 l 机器之心编辑部 来源 l 本文转载自微信公众号:机器之心(ID:almosthuman2014) 最近在 GitHub 上最火的项目是一个对视力友好的十六进制编辑器,它上线仅 5 天就收获了 ...

  • 第十期 内网穿透:ZeroTier 通过互联网访问家中 NAS

    第十期 内网穿透:ZeroTier 通过互联网访问家中 NAS

  • Asleep Beneath The Moon (Part One)

    Asleep Beneath The Moon (Part One)> 叮咚的琴声流淌着夏天的气息,悦耳动听的旋律散发出大地芬芳的清香. 每一个音符在琴键上清晰明快地跳动,一波一波似月光撒在湖面 ...

  • 【每日一练】over the moon

    昨天学习的"out of sorts"是讲状态不好.不高兴,今天学一个表示高兴的,而且是"极其高兴:欣喜若狂": over the moon 这个习语的字面意思 ...

  • ubuntu 通过ssh同步两台机器时间

    想将开发板时间与笔记本同步,但开发板联网不便,暂时无法安装ntp. 查了一些命令行,不太对,连猜带改最后搞对了. 同步时间(ssh后面为希望同步的服务端地址) sudo date --set='$(s ...

  • 技巧:钩织衣衣时 绝对 一次起边成功的简明教程

    (渔网-方格-圆圈-平针-短针-短长针) 钩衣时总被一个问题困扰,由于各人身材不同,加之钩针的粗细不同, 起边儿时总是有偏差的,即便是按照图解,不同用线, 起边的针数不尽相同,也难一次起边成功,更别说 ...

  • Logistic 回归简明教程 | 30天学会医学统计与SPSS公益课(Day20)

    30天学会医学统计与SPSS 本课程是高校医学统计学教授的公益.免费公开课!如假包换!我将每天推送视频和文字教程,讲授基于医学数据的各种统计分析策略.如果你能跟得上节奏,我相信在一个月后,您将会掌握医 ...

  • 《曹全碑》临习简明教程之部首

    <曹全碑>形体多呈扁形,故势呈横向,重心上束,中下部伸展,其收放主要是通过波挑.撇捺的左右舒展来体现.

  • 终端共享神器tmate简明教程

    在Unix/Linux上工作,最常用的就是Terminal.那么,如何将你的Terminal共享给别人一起协同工作(你帮助别人解决问题或者请别人帮助你解决问题)呢?很简单,使用终端共享神器tmate. ...

  • 河南省事业单位招聘报名照片要求及在线处理证件照简明教程

    近期,河南省鹤壁市.邓州市.滑县.宝丰县等多个县市区面向社会公开招聘行政事业单位工作人员,考生需登录<河南省人力资源服务平台>进行网上报名,填写个人资料并上传近期免冠证件照.学历学位证书证 ...

  • 矿物学简明教程

    矿物学简明教程 <矿物学简明教程>是地质出版社1998年11月出版的地质类图书,由戈定夷编著. 基本信息 书名 矿物学简明教程 作者 戈定夷等编 ISBN 9787116005235 页数 ...

  • 30天学会医学统计与SPSS公益课程(Day 20):Logistic 回归简明教程

    30天学会医学统计与SPSS 本课程是高校医学统计学教授的公益.免费公开课!如假包换!我将每天推送视频和文字教程,讲授基于医学数据的各种统计分析策略.如果你能跟得上节奏,我相信在一个月后,您将会掌握医 ...

  • 《晋江灯谜简明教程》

    <晋江灯谜简明教程>第二章 灯谜的谜体  灯谜的谜面包含两个方面内容:文体和谜体.用一个字(词).一句诗或一段话做谜面,这是文体.这条谜是用含义猜,还是用字形结构猜,也就是说该用哪一种方式 ...

  • 介绍防御性驾驶实用技术  ――【驾驶十诀】简明教程

    导言:经常看到在一些城市的交通高峰时段,由于驾驶员不能掌握正确的防御性驾驶技术,一个很低级的驾驶错误,导致严重的交通拥堵,让人焦虑不堪.本文尝试将防御性驾驶技术最基本的部分编成[驾驶十诀]的简明教程, ...