在前面的文章中我們講到利用 frp 進行內網穿透,但是他的局限在於你需要一台公網伺服器。並且對公網伺服器的帶寬有一定的要求。因此這裡我們推薦一款異地組網工具搭建屬於自己的虛擬網路,經過授權連接成功之後彼此都在同一網段,可以像在區域網一樣互相訪問。
異地組網和內網穿透不同在於,內網穿透服務是第三方會分配給你一個域名或者公網 IP,任何人都可以訪問。
異地組網是需要在訪問端和被訪問端都安裝可以異地組網的軟體,比如 Zerotier
。來組成一個大的區域網。
註冊帳號#
首先我們到官網註冊一個帳號
也可使用 Google
或 Github
授權登錄。
在登錄後,會提示創建一個網路。
創建一個網路#
點擊創建網路後,會自動創建。我們只需記錄對應的 id 即可。
下載客戶端#
和 frp 一樣,需要我們在穿透的設備上面安裝客戶端。根據自己的電腦設備系統來進行下載並安裝。
- 在 Linux 中安裝
curl -s https://install.zerotier.com | sudo bash
或者用 github 中的源碼進行編譯。
git clone https://hub.njuu.cf/zerotier/ZeroTierOne.git
make
Linux 環境加入 zerotier 區域網。
執行下面命令,加入網路。
zerotier-cli join <NETWORK ID>
<NETWORK ID>
就是我們創建網路後獲得的網路 id。
可能會遇到如下報錯:
zerotier-cli: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
我們只需要將 source.list 添加以下內容:
deb http://download.zerotier.com/debian/bullseye bullseye main
之後更新下就好了。
Linux 下的其他命令
# 加入
zerotier-cli join <NETWORK ID>
# 離開
zerotier-cli leave <NETWORK ID>
# 查看計算機連接的網路列表
zerotier-cli listnetworks
# 查看已連接的對等方(如需要連接其它區域網設備,建議先執行此命令查看IP)
zerotier-cli listpeers
#啟動
sudo systemctl start zerotier-one.service
#停止
sudo systemctl stop zerotier-one.service
#打開開機自啟
systemctl enable zerotier-one.service
#關閉開機自啟
systemctl disable zerotier-one.service
- Windows 下安裝 & 部署
首先下載 Windows 客戶端並安裝。
點擊客戶端 Join New Network
。
填入自己的 。
連接成功後,我們在 Windows 下用 ipconfig 命令便可以看到用 zerotier 組網得到的 IP 地址。
測試#
網路連接成功後。設備直接就可以互相訪問了。
不足#
當然每款工具都有各自的優點和缺點。它的優點在於無需公網 IP 就可以實現兩台異地的設備之間組網,而且很方便。不足是由於缺少公網 IP,其他用戶是無法訪問你的資源。除非也加入你的區域網。