组网神器Zerotier One使用
一些问题
可以用来干嘛?
- 异地组网,管理方便,A、B网段内的IP可以直接相互访问
到底好不好用?
- 如果不搭建
MOON
节点,直接P2P
的话,速度确实让人捉急,我感觉这个原因劝退了绝大多数人
和FRP的区别?
- 应用场景不同。
Zerotier One
更适合用来组网,可以把它理解成VPN
,可以直接通过局域网内IP互相访问。而frp
特点是把内网的某个服务穿透出去,机器一多的话,你就需要记住不同端口号或子网域名。这里并不是说Zerotier One
比frp
更好用,需要根据自己的业务场景来看。比如你在家里部署了一个WEB服务,想要给你异地的朋友使用,你不可能让你的朋友安装Zerotier One
吧?直接用frp
把该服务反向代理映射出去,直接给他一个域名不是更方便?
开始使用
初级----安装
- 账号注册(略),注意国内访问速度很慢,这个自己解决一下
- 创建网络,进入网络管理页面,点击
Create A Network
后,自动创建一个网络,点击网络ID右侧的小图标可以进行复制
- 客户端安装,推荐使用
docker
(1)拉取并运行:docker run -d --restart unless-stopped --name zerotier-one --device /dev/net/tun --net host --cap-add NET_ADMIN --cap-add SYS_ADMIN -v /var/lib/zerotier-one:/var/lib/zerotier-one henrist/zerotier-one
(2)将该客户端A加入网络:docker exec zerotier-one zerotier-cli join 8bd5124fd655f3bf
,注意最后的网络ID,就是上面复制的,根据自己的进行替换,成功后会显示200 join OK
字段
(3)进入该网络的管理界面,授权该客户端加入该网络
(4) 重复上面步骤,加入另外的客户端B
(5)根据图(3)中分配的IP,A、B机器可以相互ping
通
(6)如果是Windows
,客户端可以直接下载官方的安装包,进行安装,不需要使用Docker
(7)直接使用这种P2P
方式连接的话,速度较慢,一般至少有200m
s的延时
中级----使用MOON
加速
- 准备一台有公网IP的机器,放行
9993
端口
docker run --name zerotier-moon -d --cap-add NET_ADMIN --device /dev/net/tun --net host -p 9993:9993/udp --restart always -v ~/zerotier:/var/lib/zerotier-one seedgou/zerotier-moon:master -4 你的公网IP地址
- 根据
docker logs -f zerotier-moon
运行输出的日志,在客户端执行该命令添加该MOON
节点
- A、B机器再
ping
一下,查看网络连接是否改善 docker exec zerotier-one zerotier-cli listmoons
可以查看加入的MOON
高级----组网
现在考虑一个场景:A机器所在的内网lan_A
有10台Server,B机器所在的内网lan_B
也有10台Server,怎么让A、B机器直接访问到对方其它Server?
在这20台Server上分别装上客户端,这个可以实现需求,不过管理上比较麻烦。
实际上只要分别在lan_A
、lan_B
的某台机器上安装客户端,开启内核转发,然后在Web管理页面添加两条路由就可以了。
最简单的方法当然是分别在A、B机器上安装客户端就可以了,但前提是这两台机器都是Linux
系统,因为需要开启内核转发功能。我在官网文档并没找到Windows
的配置方法。
如果A、B两台机器都是Windows
系统的话,需要分别装上客户端。然后在各自的内网内找一台Server,安装客户端后,开启内核转发就可以了
添加路由
- 正常在两台Server上安装客户端
- 两台机器分别执行以下命令,开启内核转发:
Iface=`ifconfig | grep ^zt | awk '{print $1}'`
echo "net.ipv4.ip_forward=1">>/etc/sysctl.conf
sysctl -p
PHY_IFACE=你的物理网卡名称; ZT_IFACE=$Iface
iptables -t nat -A POSTROUTING -o $PHY_IFACE -j MASQUERADE
iptables -A FORWARD -i $PHY_IFACE -o $ZT_IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i $ZT_IFACE -o $PHY_IFACE -j ACCEPT
#开启防火墙配置生效
apt install iptables-persistent -y
netfilter-persistent save
- 登录Web管理添加路由
尽力表示了,还看不懂的话看下文档,按照这个方法,添加另外一条路由。
再来概括一下吧:通过Zerotier One
中分配的IP作为网关,跳到对应的网络
K2P使用
以下内容搬运自恩山论坛csl0524的帖子,稍微做了些修改,如果侵权,请联系删除
open-zerotier.sh
脚本:
#!/bin/sh
download_ZT(){
if [ -e "/opt/bin/opkg" ];then
opkg update && opkg install zerotier
opkg remove zerotier
wget -P /tmp https://cdn.jsdelivr.net/gh/steinvenic/JSDELIVR_CDN/zerotier_1.4.6-5_mipsel-3.4.ipk
opkg install /tmp/zerotier_1.4.6-5_mipsel-3.4.ipk
if [ -d "/etc/storage/ZT" ]; then
zerotier-one -d
killall zerotier-one
sleep 5
cd /etc/storage/ZT
cp -rf authtoken.secret identity.public identity.secret /opt/var/lib/zerotier-one/
fi
zerotier-one -d
sleep 15
zerotier-cli join xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
zerotier-cli orbit mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
#上面的xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx改成自己的networkID
#上面的mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm 改成自己的moon id(如果有的话)
# 添加防火墙规则
sleep 20
Iface=`ifconfig | grep ^zt | awk '{print $1}'`
iptables -I FORWARD -i $Iface -j ACCEPT
iptables -I FORWARD -o $Iface -j ACCEPT
iptables -I INPUT -i $Iface -j ACCEPT
#添加ZT路由表
#route add -net 172.16.64.0 netmask 255.255.240.0 gw 10.144.63.69 $Iface
#route add -net 192.168.41.0 netmask 255.255.255.0 gw 192.168.191.242 $Iface
#route add -net 192.168.13.0 netmask 255.255.255.0 gw 192.168.191.242 $Iface
#route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.191.105 $Iface
#route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.191.127 $Iface
fi
}
while [ ! -e "/opt/bin/zerotier-one" ]
do
download_ZT
sleep 600
done
保存open-zerotier.sh脚本,放入/etc/storage目录下
自定义脚本中添加以下命令
killall open-zerotier.sh
/etc/storage/open-zerotier.sh > /tmp/zerotier_log.txt 2>&1 &
- 到zerotier后台看应该有设备连接上来了,在Auth项打勾授权
- 切换到/etc/storage目录,在该目录下新建一个ZT的文件夹,再打开
/opt/var/lib/zerotier-one/
目录,复制authtoken.secret identity.public identity.secret
三个文件到刚才的ZT文件夹。这三个文件夹包含着本机zerotier的网络号,每次开机zerotier自动安装好后会把这三个文件恢复,不然每次开机zerotier会重新生成一个网络号并且要后台重新授权
组网神器Zerotier One使用的更多相关文章
- deepin下zerotier组网
环境:deepin 1.安装zerotier curl -s https://install.zerotier.com/ | sudo bash 官网也是有的 安装完成之后进行内网连接 sudo ze ...
- zerotier 远程办公方案
武汉新肺炎疫情下,搞得人心惶惶.很多公司都要求前期远程办公 我厂日常有在家远程应急支持的情况,所以公司很早就有VPN服务.只需要申请VPN服务,开通之后就可以连上公司各种公共资源. 然而对于一些非公共 ...
- 微软新神器-Power BI横空出世,一个简单易用,还用得起的BI产品,你还在等什么???
在当前互联网,由于大数据研究热潮,以及数据挖掘,机器学习等技术的改进,各种数据可视化图表层出不穷,如何让大数据生动呈现,也成了一个具有挑战性的可能,随之也出现了大量的商业化软件.今天就给大家介绍一款逆 ...
- 内网穿透神器ngrok
相信做Web开发的同学们,经常会遇到需要将本地部署的Web应用能够让公网环境直接访问到的情况,例如微信应用调试.支付宝接口调试等.这个时候,一个叫ngrok的神器可能会帮到你,它提供了一个能够在公网安 ...
- 新编码神器Atom使用纪要
Atom是 Github 专门为程序员推出的一个跨平台文本编辑器.她很大程度上继承了SublimeText的美,而又不仅如此.有费了蛮大力气总结了一篇关于SublimeText文章: 如何优雅地使用S ...
- 查看Windows下引起Oracle CPU占用率高的神器-qslice
前言: qslice是一个win2000的工具包,能分析进程的cpu占用率,我们用于分析oracle的性能 这是绿色的软件无需安装. 我们经常会碰到oracle的CPU占用居高不下,无法快速定位到问题 ...
- 打造android偷懒神器———RecyclerView的万能适配器
转载请注明出处谢谢:http://www.cnblogs.com/liushilin/p/5720926.html 很不好意思让大家久等了,本来昨天就应该写这个的,无奈公司昨天任务比较紧,所以没能按时 ...
- C#组件系列——又一款Excel处理神器Spire.XLS,你值得拥有(二)
前言:上篇 C#组件系列——又一款Excel处理神器Spire.XLS,你值得拥有 介绍了下组件的两个功能,说不上特色,但确实能解决我们项目中的一些实际问题,这两天继续研究了下这个组件,觉得有些功能用 ...
- [.NET逆向] 破解NET的四大神器
原本这篇文章可以更早一星期写出来与大家分享,由于某方面的原因耽搁到现在,心里竟有那么一点好像对不住大家的感觉.这当然与神器有关,因为我发现利用这四大神器我似乎觉得几乎所有的NET程序破解都不在话下了 ...
随机推荐
- docker容器的持久化存储:Volume
独立于docker容器的持久化存储: 法(1):自动将服务器文件夹挂载到容器内部文件夹/usr/share/nginx/html,这样只修改服务器文件夹下的内容即可对应修改容器内部文件夹的内容 将服务 ...
- Android 12(S) 图像显示系统 - SurfaceFlinger 之 VSync - 中篇(十七)
必读: Android 12(S) 图像显示系统 - 开篇 1 前言 这一篇文章,将继续讲解有关VSync的知识,前一篇文章 Android 12(S) 图像显示系统 - SurfaceFlinger ...
- 【ACM程序设计】最小生成树 Prim算法
最小生成树 ● 最小生成树的定义是给定一个无向图,如果它任意两个顶点都联通并且是一棵树,那么我们就称之为生成树(Spanning Tree).如果是带权值的无向图,那么权值之和最小的生成树,我们就称之 ...
- 【mq】从零开始实现 mq-09-消费者拉取消息 pull message
前景回顾 [mq]从零开始实现 mq-01-生产者.消费者启动 [mq]从零开始实现 mq-02-如何实现生产者调用消费者? [mq]从零开始实现 mq-03-引入 broker 中间人 [mq]从零 ...
- 为什么说 Gradle 是 Android 进阶绕不去的坎 —— Gradle 系列(1)
请点赞,你的点赞对我意义重大,满足下我的虚荣心. Hi,我是小彭.本文已收录到 GitHub · Android-NoteBook 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,欢迎 ...
- Java synchronized那点事
前言 请看上篇:Java 对象头那点事 文章中的源码都有不同程度缩减,来源于openjdk8的开源代码(tag:jdk8-b120). 锁粗化过程 偏向锁 ①:markword中保存的线程ID是自己且 ...
- Nacos源码系列—订阅机制的前因后果(下)
点赞再看,养成习惯,微信搜索[牧小农]关注我获取更多资讯,风里雨里,小农等你,很高兴能够成为你的朋友. 项目源码地址:公众号回复 nacos,即可免费获取源码 事件发布 在上一节中我们讲解了在Noti ...
- 实践torch.fx第一篇——基于Pytorch的模型优化量化神器
第一篇--什么是torch.fx 今天聊一下比较重要的torch.fx,也趁着这次机会把之前的torch.fx笔记整理下,笔记大概拆成三份,分别对应三篇: 什么是torch.fx 基于torch.fx ...
- 第06组 Beta冲刺 (1/6)
目录 1.1 基本情况 1.2 冲刺概况汇报 1.郝雷明 2. 方梓涵 3.曾丽莉 4.黄少丹 5. 董翔云 6.杜筱 7.鲍凌函 8.詹鑫冰 9.曹兰英 10.吴沅静 1.3 冲刺成果展示 1.1 ...
- 【仿真】Carla介绍与基本使用 [1] (附代码 基础版)
0. 参考与前言 主要介绍无人驾驶的仿真环境CARLA,开源社区维护,以下为相关参考链接: Carla官方文档 建议后续找的时候 先按好版本号,有些功能/api 是新版本里有的 Carla官方gith ...