快轉到主要內容

NetBird設定教學,客戶端與伺服端全部開源的內網穿透VPN

· 民國115年丙午年
·
切換繁體/簡體
分類 Linux系統 Self-hosting自架
標籤 NAT Traversal
目錄

NetBird是基於WireGuard開發的內網穿透VPN。它可以讓你安全地遠端連線到家中的電腦,不需要將電腦暴露到公網。

netbird.webp

跟類似產品Tailescale和Zerotier比起來,NetBird是完全開源的軟體,從協定、客戶端到伺服端都是開源的,而且三大作業系統(Linux、Windows、macOS)都有提供圖形界面,不需要依賴第三方前端。適合想要追求完全自由軟體的解決方案的使用者。

使用者還可以在NetBird Network內自己定義一套DNS伺服器,將域名指向任意的IP,簡化遠端登入主機的步驟。

1. NetBird安全性
#

造訪他們的官網就可略知一二。這張圖生動的解釋了NetBird的原理。

high-level-dia.webp

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
#

  1. 執行官網給的指令稿安裝,它應該會自動偵測Linux發行版,新增NetBird的套件庫
curl -fsSL https://pkgs.netbird.io/install.sh | sh
  1. 這會安裝NetBird的執行檔與圖形界面,安裝之後會顯示在Linux桌面的系統匣。NetworkManager連線面板會多出一個WireGuard連線,不要把它斷掉呀嘿。

  2. 安裝後使用這個指令確認服務狀態

sudo systemctl status netbird
  1. NetBird可能會覆寫/etc/resolv.conf導致一些服務的DNS出問題,這時請在Linux安裝systemd-resolved服務處理DNS連線:
sudo apt install systemd-resolved

sudo systemctl restart NetworkManager

Windows
#

官網下載。安裝後會顯示在系統匣。

macOS
#

官網下載。安裝後會顯示在系統匣。

Android
#

官網下載。執行後會要求開啟VPN。

iOS
#

官網下載。執行後會要求開啟VPN。

3. 將裝置加入NetBird Network
#

  1. NetBird官網註冊一個帳號。

  2. 開啟NetBird客戶端,依照指示,點選連結,開啟NetBird的網頁控制面板。將其加入到你的NetBird Network,成為Peers。

  3. 加入後,每一個裝置都會分配到一個虛擬區域IP,還有一個網域。僅限加入NetBird Network的裝置才能解析這些網址。打這兩個其中一個就能連線。

    peers.webp

4. 設定SSH的存取控制原則
#

雖然設定好NetBird之後所有通訊埠應該都能存取,不過NetBird預設會擋SSH連線,要設定存取控制原則(Access Control Policy)才能登入SSH。

事實上,這裡你要連線的SSH伺服器,其實是NetBird客戶端內嵌的SSH伺服器,並非遠端主機系統的OpenSSH伺服器。但一樣可以存取系統上使用者的檔案。

你要在Peer設定裡面點選Enable SSH Access。設定一個單向或雙向Policy才可以連線。

screenshot_20260213_025736.webp

在NetBird桌面客戶端勾選Enable SSH。並視需要開啟STFP。不知道為什麼,有些SSH客戶端得勾選取消SSH Authentication才能登入,否則會出現permission denied。

enable-ssh.webp

在SSH客戶端輸入ssh 使用者名稱@NetBird虛擬區域IP連線到遠端主機。

當你連線的時候,應該不需要輸入密碼就能登入才對。

此外,Netbird網頁控制面板提供一個簡單的網頁終端機,讓你在瀏覽器裡面遠端操控電腦。

web-ssh.webp

5. NetBird使用例
#

兩個裝置連上線之後就可以嘗試用http://虛擬區域IP:通訊埠的方式連線到網頁服務了。

你可以跑什麼服務?參閱本站自架雲端服務的實例

另請參見
#

相關文章


此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

(留言板載入中)這是Giscus留言板,需要Github帳號才能留言。支援Markdown語法,若要上傳圖片請善用外部圖床。您的留言會在Github Discussions向所有人公開。

Click here to edit your comments.

(留言板載入中)這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用外部圖床網站。