NetBird是基於WireGuard開發的內網穿透VPN。它可以讓你安全地遠端連線到家中的電腦,不需要將電腦暴露到公網。
跟類似產品Tailescale和Zerotier比起來,NetBird是完全開源的軟體,從協定、客戶端到伺服端都是開源的,而且三大作業系統(Linux、Windows、macOS)都有提供圖形界面,不需要依賴第三方前端。適合想要追求完全自由軟體的解決方案的使用者。
使用者還可以在NetBird Network內自己定義一套DNS伺服器,將域名指向任意的IP,簡化遠端登入主機的步驟。
1. NetBird安全性#
造訪他們的官網就可略知一二。這張圖生動的解釋了NetBird的原理。
NetBird是基於WireGuard技術打造的開源軟體。
使用者需要到NetBird官網註冊一個帳號才可以使用。NetBird提供免費與付費版方案。免費版最多可以加入100個裝置,並邀請其他5名NetBird使用者加入自己的NetBird Network。NetBird可以定義群組,設定哪些裝置可以互相連線,隔離不同的需求。
每個NetBird的帳號會建立一個自己專屬的NetBird Network,組成一個虛擬區網。使用者要手動同意,讓一或多個裝置加入,然後彼此之間使用P2P連線。在連線的過程中間,會到NetBird的控制伺服器查詢可以連線的裝置有哪些,然後進行P2P hole punching。流量傳輸不經過NetBird公司伺服器。若P2P不通的話才會改走relay伺服器。
NetBird在裝置之間的連線是全程點對點加密的。
當然了,負責處理各裝置之間連線的,還是得連線到NetBird公司的伺服器做統合。既然NetBird從客戶端到伺服端都是開源軟體,你可以不依賴NetBird公司的服務,自己跑一個控制伺服器來處理連線。
2. 安裝NetBird#
Linux#
- 執行官網給的指令稿安裝,它應該會自動偵測Linux發行版,新增NetBird的套件庫
curl -fsSL https://pkgs.netbird.io/install.sh | sh這會安裝NetBird的執行檔與圖形界面,安裝之後會顯示在Linux桌面的系統匣。NetworkManager連線面板會多出一個WireGuard連線,不要把它斷掉呀嘿。

安裝後使用這個指令確認服務狀態
sudo systemctl status netbird- NetBird可能會覆寫
/etc/resolv.conf導致一些服務的DNS出問題,這時請在Linux安裝systemd-resolved服務處理DNS連線:
sudo apt install systemd-resolved
sudo systemctl restart NetworkManagerWindows#
到官網下載。安裝後會顯示在系統匣。
macOS#
到官網下載。安裝後會顯示在系統匣。
Android#
到官網下載。執行後會要求開啟VPN。
iOS#
到官網下載。執行後會要求開啟VPN。
3. 將裝置加入NetBird Network#
到NetBird官網註冊一個帳號。
開啟NetBird客戶端,依照指示,點選連結,開啟NetBird的網頁控制面板。將其加入到你的NetBird Network,成為Peers。
加入後,每一個裝置都會分配到一個虛擬區域IP,還有一個網域。僅限加入NetBird Network的裝置才能解析這些網址。打這兩個其中一個就能連線。

4. 設定SSH的存取控制原則#
雖然設定好NetBird之後所有通訊埠應該都能存取,不過NetBird預設會擋SSH連線,要設定存取控制原則(Access Control Policy)才能登入SSH。
事實上,這裡你要連線的SSH伺服器,其實是NetBird客戶端內嵌的SSH伺服器,並非遠端主機系統的OpenSSH伺服器。但一樣可以存取系統上使用者的檔案。
你要在Peer設定裡面點選Enable SSH Access。設定一個單向或雙向Policy才可以連線。
在NetBird桌面客戶端勾選Enable SSH。並視需要開啟STFP。不知道為什麼,有些SSH客戶端得勾選取消SSH Authentication才能登入,否則會出現permission denied。
在SSH客戶端輸入ssh 使用者名稱@NetBird虛擬區域IP連線到遠端主機。
當你連線的時候,應該不需要輸入密碼就能登入才對。
此外,Netbird網頁控制面板提供一個簡單的網頁終端機,讓你在瀏覽器裡面遠端操控電腦。
5. NetBird使用例#
兩個裝置連上線之後就可以嘗試用http://虛擬區域IP:通訊埠的方式連線到網頁服務了。
你可以跑什麼服務?參閱本站自架雲端服務的實例


