利用ZeroTier組建國內虛擬局域網


基本概念

ZeroTier is a smart Ethernet switch for planet Earth.

 

通俗來講就是 Peer to Peer (P2P) ,ZeroTier 根服務器記錄請求路徑來做類似於DNS的解析。主要功能,就是可以把多個不同網絡的設備連接在一起,用來就像在一個局域網下 如下圖

ZeroTier 配置一個虛擬網段172.12.0.0/16,在家中加入這個網絡中,即可訪問位於公司172.12.0.101

 

專有名詞


Zerotier 定義了幾個專業名詞:

PLANET 行星服務器,Zerotier 根服務器
MOON 衛星服務器,用戶自建的私有根服務器,起到代理加速的作用
LEAF 網絡客戶端,就是每台連接到網絡節點。

 

開始使用

 

注冊 zerotier 服務

https://my.zerotier.com/ 

在這里插入圖片描述


創建網絡在這里插入圖片描述


內網目標機器安裝客戶端

Linux

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

 


其他操作系統

下載地址:https://www.zerotier.com/download/

 

客戶端加入創建的網絡

 

 

 


Linux

zerotier-cli join 17d7123456c1ed14b #上圖創建網絡生成的16位ID


windows

在這里插入圖片描述

或者是cmd 后出入跟 linux一樣


在這里插入圖片描述

zerotier 同意客戶端接入
點擊第二部創建的網絡,進入網絡詳情 ,同意客戶端

如上圖,給客戶端分配 的局域網 IP, 當然網段可以通過 本頁Advanced 調整。

確定網絡聯通(下圖是moon后連接圖)

在這里插入圖片描述

 

建立國內中轉服務


建立中轉服務器 moon Zerotier 的官方服務器在國外,國內客戶端使用時延遲較大,網絡高峰期時甚至各個客戶端節點之間訪問不了。此時 moon 中轉服務器就顯得非常重要,它的主要功能是通過自定義的服務器作為跳板加速內網機器之間的互相訪問。

准備
搭載moon(衛星級服務器,用戶自建的私有根服務器,起到中轉加速的作用)

機器 A(這里選用了雲服務器)

內網機器

機器 B跟 C (兩筆記本)

設置教程
1. 生成及修改 moon.json
首先登陸到機器 A 上,前往路徑 /var/lib/zerotier-one。運行命令

zerotier-idtool initmoon identity.public >>moon.json

 


此命令會在當前目錄下生成一個文件 moon.json,文件內容如下:

{
"id": "9d2456s2d7",
"objtype": "world",
"roots": [
{
"identity": "9d255ee2d7:0:7f36dcd6a7ef8ee21a0cf801e194a72ef36780b4c8578ff51fjsghfae23fc26da8c1803e7dfd17699226516ece92e752d3999bd14fb23065cf78762cb699bab",
"stableEndpoints": []
}
],
"signingKey": "8060e833f6f0f46068dfdc97545f8c9b1b1a9358fdcf664c64ee9078f5088c48a7806c82e75cbddad898129485444cc7e83db6344d1f2e518b9b9d132c327986",
"signingKey_SECRET": "e70cbfefddac12yh67506f3e54d376bb4c6830d6960e7a153ed0cb9aa6f4af2ecd8d423d4cae59195d2ab0398ede0673cf67h633bce5ec4140493d37d6a50ab9",
"updatesMustBeSignedBy": "8060e833f6f0f46068dfdc97545f8c9b1b1a9358fdcf664c64ee9078f5my6d48a7806c82e75cbddad898129485444cc7e83db6344d1f2e518b9b9d132c327986",
"worldType": "moon"
}

其中 id 為機器 A 在 ZeroTier 中的 id,本文為 9d2456s2d7。
修改 “stableEndpoints” 為機器 A 的公網的 ip。如:

"stableEndpoints": [ "1.2.3.4/9993","2001:abcd:abcd::1/9993" ]

若公網機器沒有 IPv6 地址,則將其修改為

"stableEndpoints": [ "1.2.3.4/9993" ]

2. 生成簽名文件
修改完 moon.json 后,執行命令

zerotier-idtool genmoon moon.json

 

此命令會生成一個簽名文件在當前目錄下,文件名如 0000009d2456s2d7.moon (機器 A 的 id 為 9d2456s2d7)

3. 將 moon 節點加入網絡

在機器 A 中的 ZeroTier 目錄中建立子文件夾 moons.d

不同系統下的 ZeroTier 目錄位置:

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

將在機器 A 生成的 0000009d2456s2d7.moon 拷貝進 moons.d 文件夾中,並重啟
ZeroTier(此步好像有些許 bug,重啟電腦為佳)

4. 將內網機器連接上 moon 節點

方法一

在機器 B、機器 C 中的 ZeroTier 目錄中建立子文件夾 moons.d

不同系統下的 ZeroTier 目錄位置:

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


方法二

在機器 B、機器 C 上執行

zerotier-cli orbit 9d2456s2d7 9d2456s2d7

查看是否連接

在其他機子執行以下命令將會顯示該moon服務器:

zerotier-cli listpeers


如果出現下面情況說明連接上

在這里插入圖片描述

原文鏈接:https://blog.csdn.net/dingjianjin/article/details/104235222


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM