组网神器Zerotier One使用
一些問題
可以用來干嘛?
異地組網(wǎng),管理方便,A、B網(wǎng)段內(nèi)的IP可以直接相互訪問
到底好不好用?
如果不搭建MOON節(jié)點,直接P2P的話,速度確實讓人捉急,我感覺這個原因勸退了絕大多數(shù)人
和FRP的區(qū)別?
應用場景不同。Zerotier One更適合用來組網(wǎng),可以把它理解成VPN,可以直接通過局域網(wǎng)內(nèi)IP互相訪問。而frp特點是把內(nèi)網(wǎng)的某個服務穿透出去,機器一多的話,你就需要記住不同端口號或子網(wǎng)域名。這里并不是說Zerotier One比frp更好用,需要根據(jù)自己的業(yè)務場景來看。比如你在家里部署了一個WEB服務,想要給你異地的朋友使用,你不可能讓你的朋友安裝Zerotier One吧?直接用frp把該服務反向代理映射出去,直接給他一個域名不是更方便?
開始使用
初級----安裝
賬號注冊(略),注意國內(nèi)訪問速度很慢,這個自己解決一下
創(chuàng)建網(wǎng)絡,進入網(wǎng)絡管理頁面,點擊Create A Network后,自動創(chuàng)建一個網(wǎng)絡,點擊網(wǎng)絡ID右側(cè)的小圖標可以進行復制
客戶端安裝,推薦使用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加入網(wǎng)絡:docker exec zerotier-one zerotier-cli join 8bd5124fd655f3bf,注意最后的網(wǎng)絡ID,就是上面復制的,根據(jù)自己的進行替換,成功后會顯示200 join OK字段
(3)進入該網(wǎng)絡的管理界面,授權(quán)該客戶端加入該網(wǎng)絡
(4) 重復上面步驟,加入另外的客戶端B
(5)根據(jù)圖(3)中分配的IP,A、B機器可以相互ping通
(6)如果是Windows,客戶端可以直接下載官方的安裝包,進行安裝,不需要使用Docker
(7)直接使用這種P2P方式連接的話,速度較慢,一般至少有200ms的延時
中級----使用MOON加速
準備一臺有公網(wǎng)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 你的公網(wǎng)IP地址
根據(jù)docker logs -f zerotier-moon運行輸出的日志,在客戶端執(zhí)行該命令添加該MOON節(jié)點
A、B機器再ping一下,查看網(wǎng)絡連接是否改善
docker exec zerotier-one zerotier-cli listmoons可以查看加入的MOON
高級----組網(wǎng)
現(xiàn)在考慮一個場景:A機器所在的內(nèi)網(wǎng)lan_A有10臺Server,B機器所在的內(nèi)網(wǎng)lan_B也有10臺Server,怎么讓A、B機器直接訪問到對方其它Server?
在這20臺Server上分別裝上客戶端,這個可以實現(xiàn)需求,不過管理上比較麻煩。
實際上只要分別在lan_A、lan_B的某臺機器上安裝客戶端,開啟內(nèi)核轉(zhuǎn)發(fā),然后在Web管理頁面添加兩條路由就可以了。
最簡單的方法當然是分別在A、B機器上安裝客戶端就可以了,但前提是這兩臺機器都是Linux系統(tǒng),因為需要開啟內(nèi)核轉(zhuǎn)發(fā)功能。我在官網(wǎng)文檔并沒找到Windows的配置方法。
如果A、B兩臺機器都是Windows系統(tǒng)的話,需要分別裝上客戶端。然后在各自的內(nèi)網(wǎng)內(nèi)找一臺Server,安裝客戶端后,開啟內(nèi)核轉(zhuǎn)發(fā)就可以了
添加路由
正常在兩臺Server上安裝客戶端
兩臺機器分別執(zhí)行以下命令,開啟內(nèi)核轉(zhuǎn)發(fā):
Iface=`ifconfig | grep ^zt | awk '{print $1}'`
echo "net.ipv4.ip_forward=1">/etc/sysctl.conf
sysctl -p
PHY_IFACE=你的物理網(wǎng)卡名稱; 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
netfilter-persistent save
登錄Web管理添加路由
盡力表示了,還看不懂的話看下文檔,按照這個方法,添加另外一條路由。
再來概括一下吧:通過Zerotier One中分配的IP作為網(wǎng)關,跳到對應的網(wǎng)絡
K2P使用
以下內(nèi)容搬運自恩山論壇csl0524的帖子,稍微做了些修改,如果侵權(quán),請聯(lián)系刪除
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(如果有的話)
# 添加防火墻規(guī)則
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項打勾授權(quán)
切換到/etc/storage目錄,在該目錄下新建一個ZT的文件夾,再打開/opt/var/lib/zerotier-one/目錄,復制authtoken.secret identity.public identity.secret三個文件到剛才的ZT文件夾。這三個文件夾包含著本機zerotier的網(wǎng)絡號,每次開機zerotier自動安裝好后會把這三個文件恢復,不然每次開機zerotier會重新生成一個網(wǎng)絡號并且要后臺重新授權(quán)
總結(jié)
以上是生活随笔為你收集整理的组网神器Zerotier One使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python之内置函数(一)
- 下一篇: 碎盖摩根烫发多少钱