告別ZeroTier!去中心化異地組網神器EasyTier,全平臺部署教程

大家好,我是飄雷。

對於咱們玩NAS的老油條來說,異地組網、外網遠程訪問一直是個絕對的剛需。

以前很多朋友可能都折騰過 Tailscale、ZeroTier One,或者爲了追求全權掌控,硬着頭皮買雲服務器去搭建 Headscale,但是,這些方案多多少少都有點讓人難受的痛點。

像我之前在用的ZeroTier One,以及Tailscale,它們的官方服務器全在國外,國內握手連接不僅有時候會比較慢,而且成功率難有保障,一旦遇到複雜的網絡環境打洞失敗,就會被迫走限速極其嚴重的DERP中繼服務器,那速度簡直讓人抓狂。

而一些朋友選擇自建 Headscale的話,門檻又太高,像是買雲服務器、配域名、搞證書、命令行操作等等等等,對很多隻想安安靜靜用NAS的朋友來說,只是看看教程就會被勸退了。

幸好最近我在GitHub上挖到了一款基於Rust語言編寫的去中心化異地組網神器——EasyTier。

在我的威聯通NAS上試用了一段時間後,只能說這玩意兒完全可以作爲比Zerotier One更好用的替代品,真的很香。

https://github.com/EasyTier/EasyTier

今天,飄雷就和大家深入聊聊EasyTier,並且分享在NAS、PC和手機上異地組建虛擬內網的教程。

老規矩,強烈建議大家先點贊、收藏本文,以防後面折騰的時候找不到路!

一、 爲什麼我極力推薦 EasyTier?

簡單給大家盤一盤EasyTier的核心優勢,看完你就知道它爲什麼在GitHub能拿到11.5K的收藏。

1. 此前市面上以Zerotier One爲代表的絕大多數組網軟件是中心化的,必須通過中心服務器進行握手纔可以實現配對。

而EasyTier可以實現純粹的去中心化架構,不區分服務器和客戶端,節點之間全部是對等聯網,只要一個設備可以與虛擬網中任意一個節點通信,就可以加入虛擬網。

2.EasyTier更適合牆內的網絡環境,採用UDP+TCP 雙通道,對稱型NAT突破率達98%,優於 ZeroTier 的UDP單通道,也避免了ZeroTier默認中繼服務器在國外導致的高延遲、不穩定問題。

3. 極簡部署,不用去國外網站註冊賬號,也不用折騰什麼網頁授權,提供網頁、客戶端、命令行三種操作方式,滿足不同用戶需求,小白也能輕鬆搞定,而且完全免費,沒有組網設備的數量限制。

4.更靈活的協議與傳輸機制,原生支持TCP/UDP/WireGuard,還可將 TCP流量轉爲KCP/QUIC協議,提升高丟包環境下的傳輸穩定性,並且具有全鏈路零拷貝技術,數據面性能更強,尤其適合大文件傳輸。

5.EasyTier還有更強的擴展性與兼容性,支持WireGuard客戶端直接接入EasyTier網絡,實現與現有WireGuard設備的互通,同時節點可共享子網供其他節點訪問,輕鬆實現跨子網通信。而且它還支持 Win/MacOS/Linux/FreeBSD/Android/鴻蒙等多個平臺,兼容X86/ARM/MIPS架構,適配路由器、NAS 等多種設備。

二、NAS部署流程

這裏我們來展示如何在威聯通NAS上使用Docker形式部署EasyTier,用到的設備是威聯通最新的8盤位旗艦新品Qu805。

這裏飄雷強烈推薦大家使用Docker Compose的方式來部署,一鍵複製粘貼代碼即可,參數修改清晰可見,非常方便。其他配置方法可以參考EasyTier的官網文檔,講的很清晰:

https://easytier.cn/

打開威聯通 Container Station,點擊左側的「應用程序」,然後點擊右側黑色「創建」按鈕,輸入以下代碼:

services:

  # 附加神器:Watchtower (用於自動靜默更新 EasyTier 鏡像,保持最新打洞協議)

  watchtower:

    image: nickfedor/watchtower

    container_name: watchtower

    restart: unless-stopped

    environment:

      - TZ=Asia/Shanghai

      - WATCHTOWER_NO_STARTUP_MESSAGE=true

    volumes:

      - /var/run/docker.sock:/var/run/docker.sock

    command: --interval 3600 --cleanup --label-enable

  easytier:

    image: easytier/easytier:latest

    hostname: easytier

    container_name: easytier

    labels:

      # 配合上方的 watchtower,只允許更新帶有此標籤的容器

      com.centurylinklabs.watchtower.enable: 'true'

    restart: unless-stopped

    network_mode: host

    

    # 摒棄高風險的 privileged 特權模式,採用精準權限控制

    cap_add:

      - NET_ADMIN

      - NET_RAW

    environment:

      - TZ=Asia/Shanghai

    devices:

      - /dev/net/tun:/dev/net/tun

    volumes:

      # 映射宿主機的 machine-id,確保每次重啓容器 Node ID 絕對不變更!

      - /etc/machine-id:/etc/machine-id:ro

    

    command: >

      -i 10.144.144.10

      --hostname Qu805

      --network-name piaolei

      --network-secret 123

      -p tcp://8.148.29.206:11010

      -n 192.168.10.0/24

部署完成後,可以在Contain Station中看到正在運行的應用程序和容器:

由於參數較多,在yaml最後一段的command部分,我們着重做一下說明。

-i 10.144.144.10

這是你給NAS手動指定的虛擬內網中的固定IP,其中10.144.144.X是我隨便選的內網網段,大家可以根據自己的需求設置一個好記的。EasyTier默認使用的是-d參數,虛擬IP會自動設置,不過個人覺得NAS這種設備還是用一個固定IP比較好記憶,所以選擇了手動指定的方式。

--hostname Qu805

這是用於標識此設備的主機名,方便我們在節點列表中精準識別。

--network-name piaolei

這是用於標識這個虛擬內網絡的網絡名稱,這裏我隨便將其命名爲piaolei,大家在使用的時候要自己修改一下。

--network-secret 123

這是入網密碼,用於驗證此節點屬於虛擬內網,我隨便寫了個123,大家可以根據實際需求設置一個複雜一點兒的。

-p tcp://8.148.29.206:11010

這是用於握手的公共節點地址,大家也可以去EasyTier提供的公共服務器列表中進行查詢替換:

https://easytier.gd.nkbpal.cn/status/easytier

當然如果自己的入網設備有比較固定的公網IP或者DDNS地址的話,那就可以在這裏設置成自己的節點地址,實現完全的去中心化。

-n 192.168.10.0/24

這是對NAS用戶來說非常香的子網代理功能,這裏將其設置成NAS所在的實際物理局域網網段,比如你家主路由後臺是 192.168.50.1,那就改成 192.168.50.0/24,配置好後,外網設備就能直接穿透進內網,遠程管理路由器、PC等其他設備,實現一機入網,全屋暢通。

三、PC客戶端虛擬組網

異地組網的意義就在於,我們可以把在外辦公、或者在咖啡廳裏摸魚的電腦也拉進這個虛擬局域網裏。這裏我們以Windows電腦爲例,官方提供了非常漂亮的 GUI 桌面圖形版,對小白極其友好,Linux、MacOS電腦的操作流程也很類似。

首先咱們前往EasyTier的GitHub Release頁面,下載最新的 Windows 客戶端easytier-gui_2.6.4_x86-setup.exe。

安裝並打開EasyTier GUI,軟件界面一目瞭然,非常直觀,配置信息後點擊「運行網絡」即可加入虛擬內網。

虛擬IPv4地址處,可以手動填一個同網段的未分配 IP,例如 10.144.144.2;如果不填,EasyTier也會通過DHCP自動爲你分出一個。

網絡名稱、網絡密碼、初始節點等處,與yaml代碼中最後command一段的參數意思相同,這裏不再贅述。

此外在這裏還有更多更詳細的高級設置、端口轉發和訪問控制選項,大家可以根據自己的實際需要來選擇是否勾選。

加入虛擬內網之後,可以在這裏看到在網的其他節點的狀態:

ping一下剛纔給NAS設置的虛擬內網IP,實測可以完美連接:

四、手機等移動客戶端虛擬組網

手機的安裝與設置方式與PC端沒啥區別,同樣需要先去EasyTier的GitHub Release頁面下載對應的安裝包,比如安卓手機下載app-arm64-release.apk,安裝後即可進入配置頁面,需要填寫的信息也和PC端沒啥差別。鴻蒙手機則可以去AppGallery裏直接下載安裝。

入網成功後,同樣能看到這個虛擬內網中其他節點的信息,這一點比ZeroTier直觀多了。

此外,別忘了我們在yaml代碼里加入了子網代理參數:

-n 192.168.10.0/24

現在,見證奇蹟的時刻到了,即便我的手機正在使用SIM卡流量,此時在瀏覽器裏直接輸入我家軟路由的實際 IP(比如 http://192.168.10.1),直接瞬間秒開,就在家裏使用WiFi是一個效果。

有了這個功能,NAS就可以替我們把外網所有發往家裏內網的流量做好路由中轉,出差在外想改個路由配置、控制下家裏的智能家居,或者從辦公室直接打印家裏書房的文件,體驗簡直不要太爽。

用入網的電腦ping一下使用SIM卡流量的手機,延遲還是挺低的:

總結

折騰到這裏,整個教程其實就差不多了。

如果你在老家、辦公室、新房都有NAS或者可以使用Docker的設備,完全可以如法炮製,實現異地組建虛擬內網,安全且高效。

另外提醒一下,爲了讓EasyTier的P2P直連成功率更高,比較建議大家登錄自己家裏的主路由器後臺,把NAT類型修改爲FullCone NAT全錐形 NAT) 或開啓 DMZ / UPnP。一旦兩端設備實現 P2P 直連,異地拷貝文件的速度就只取決於你家寬帶的上傳極限了。

以上就是本期的全部內容,如果大家在部署過程中遇到什麼問題,歡迎在評論區留言交流,也歡迎給飄雷來個點贊、收藏加關注三連擊,我們下期再見!

PS:

在寫作本文的時候看到了威聯通的GZH推送消息,618的抽獎活動上線了,最近要買NAS的朋友可以看看,沒準運氣好就一單回本了呢- -!

更多遊戲資訊請關註:電玩幫遊戲資訊專區

電玩幫圖文攻略 www.vgover.com