如何在 Linux 上設定 Wireguard VPN

如何在 Linux 上設定 Wireguard VPN
一張筆記型電腦的照片,旁邊有一個桌上型顯示器。

Wireguard 是一個功能強大的開源虛擬私人網路 (VPN) 守護程序,可在桌面和行動裝置上運行。它為 IPsec 和 OpenVPN 等傳統 VPN 解決方案提供了快速、輕量級的替代方案。在這裡,我們向您展示如何安裝 Wireguard 並使用三台 Linux 電腦建立一個簡單的 VPN 設定。

為什麼要使用 Wireguard 作為 VPN 解決方案?

Wireguard 的最大賣點之一是它是一個快速且輕量級的 VPN 守護程式。與傳統解決方案不同,Wireguard 不會為您的網路增加大量開銷。這會降低節點的延遲並提高整體吞吐量。

顯示兩個 Wireguard 節點之間的 iperf3 測試的終端,顯示出高吞吐量。

Wireguard 的另一個關鍵特性是它是 Linux 核心中的一個模組。這使得它可以在不佔用電腦任何額外系統資源的情況下運行,使其成為部署在低階和 SOC 設備上的理想選擇。

顯示 Linux 核心上載入的 Wireguard 的終端機。

最後,Wireguard 也利用了現代加密標準和開發實踐。它還經過了多次形式驗證,確認了Wireguard的程式碼正確性、安全保證和抵禦攻擊的能力。

取得線衛

在 Linux 上設定 Wireguard 的第一步是從發行版儲存庫下載其核心工具。這允許您使用使用者空間命令控制內建的 Wireguard 核心模組。

若要在 Ubuntu 和 Debian 中安裝核心工具,請執行以下命令:

在 Fedora 中,您可以使用dnf套件管理器:

對於Arch Linux,您可以運行pacman獲取Wireguard核心工具:

透過載入其說明畫面來確認您已正確安裝 Wireguard 工具:

顯示 Wireguard 使用者空間工具幫助選單的終端。

設定 Wireguard 伺服器

假設:本文假設您在具有可公開存取的 IPv4 位址的 Linux 系統上安裝 Wireguard 伺服器。這些指令仍然適用於 NAT 後面的伺服器,但它不會找到其子網路以外的節點。

使用 Linux 電腦上的 Wireguard 核心工具包,您現在可以設定 VPN 的伺服器節點。這將充當網路中客戶端節點的網際網路網關。

首先導航至 Wireguard 配置目錄並將其預設權限設為“僅限 root:”

為您的 Wireguard 伺服器產生公鑰和私鑰:

使用您最喜歡的文字編輯器建立伺服器的設定檔:

將以下程式碼區塊貼到伺服器設定檔中:

開啟一個新的終端會話,然後列印伺服器的 Wireguard 私鑰:

將伺服器的私鑰複製到剪貼簿。

顯示在 Ubuntu 上複製伺服器私鑰過程的終端。

將變數的值替換PrivateKey為剪貼簿上的鍵。

在伺服器的 Wireguard 配置中顯示伺服器私鑰的終端。

使用以下指令尋找可以存取網際網路的網路介面ip

終端機會反白顯示可存取網際網路的網路介面的名稱。

-o將兩個PostUp和變數上的標誌值設定PostDown為具有網路存取權限的接口,然後儲存您的設定檔。

終端在 Wireguard 伺服器的設定檔中顯示正確的設備名稱。

使用您喜歡的文字編輯器開啟伺服器的“/etc/sysctl.conf”檔案:

向下捲動到包含 的行net.ipv4.ip_forward=1,然後刪除其前面的井號 (#)。

終端機突出顯示 sysctl.conf 中 IPv4 轉送選項的位置。

透過執行以下命令重新載入新的 sysctl 配置sudo sysctl -p

顯示重新載入 sysctl.conf 檔案過程的終端。

設定並連接 Wireguard 用戶端

此時,您已擁有正確設定的 Wireguard 伺服器,且沒有任何對等方。要使用它,您需要設定並連接您的第一個 Wireguard 用戶端。

導航至客戶端系統的 Wireguard 配置目錄並設定其預設權限:

使用以下命令產生客戶端的 Wireguard 金鑰對:

使用您最喜歡的文字編輯器建立客戶端的 Wireguard 設定檔:

將以下程式碼區塊貼到客戶端設定檔中:

將變數替換PrivateKey為客戶的私鑰。

終端機突出顯示第一個 Wireguard 用戶端的私鑰。

開啟 Wireguard 伺服器的終端會話,然後列印其公鑰:

將變數的值設定PublicKey為伺服器的公鑰。

終端在第二個客戶端的設定檔中突出顯示 Wireguard 伺服器的公鑰。

將變數更改Endpoint為 Wireguard 伺服器的 IP 位址。

終端機突出顯示 Wireguard 伺服器的 IP 位址。

儲存設定文件,然後使用以下wg-quick命令啟動 Wireguard 用戶端:

顯示啟動 Wireguard 用戶端守護程序的過程的終端。

將 Wireguard 伺服器連結到客戶端

前往 Wireguard 伺服器的終端機會話,然後開啟其設定檔:

將以下程式碼區塊貼到該[Interface]部分之後:

將變數設定PublicKey為 Wireguard 用戶端的公鑰。

終端顯示 [Peer] 區塊的位置並突出顯示客戶端的公鑰。

儲存設定文件,然後執行以下命令在伺服器上啟動 Wireguard 服務:

將第二個客戶端新增至伺服器

每個 VPN 服務的關鍵功能是它可以將來自不同網路的多台電腦連接在一起。如果您的電腦位於不同的位置或想要為您的朋友託管私人遊戲伺服器,這非常有用。

要在 Wireguard 中執行此操作,您需要為伺服器上的新 VPN 介面建立一個設定檔。最簡單的方法是複製目前的伺服器配置並為副本指定一個新名稱:

使用您最喜歡的文字編輯器開啟新的設定檔:

將變數設為ListenPort60102。

終端機突出顯示第二個 Wireguard 介面的修改後的 ListenPort 變數。

轉到[Peer]部分並將變數從“10.0.0.2/32”更改AllowedIPs為“10.0.0.3/32”,然後儲存設定檔。

終端機突出顯示第二個 Wireguard 用戶端修改後的 AllowedIPs 變數。

配置第二個 Wireguard 用戶端

登入您的第二台計算機,然後準備您的 Wireguard 設定目錄:

使用以下命令產生新的 Wireguard 密鑰對:

使用您最喜歡的文字編輯器建立一個新的設定檔:

將以下程式碼區塊貼到新的設定檔中:

將變數設定PrivateKey為第二台電腦的私鑰,然後將PublicKey變數變更為伺服器的公鑰。

終端機突出顯示第二個客戶端的私鑰和 Wireguard 伺服器的公鑰。

將 Endpoint 變數替換為您的伺服器的 IP 位址,後面跟著「:60102」。

終端機在第二個客戶端的配置中突出顯示 Wireguard 伺服器的 IP 位址。

儲存設定文件,然後啟動第二台電腦的 Wireguard 用戶端:

將第二個客戶端連結到 Wireguard 伺服器

重新登入您的 Wireguard 伺服器,然後開啟第二個用戶端的 VPN 介面設定:

向下捲動到該[Peer]部分,然後將PublicKey變數替換為第二個客戶的公鑰。

終端突出顯示伺服器 wg1 設定檔中第二個客戶端的公鑰。

儲存您的設定文件,然後使用 wg-quick 命令啟動第二個 VPN 介面:

透過執行來確認您的第一個和第二個 Wireguard 用戶端在您的伺服器上正確顯示wg

顯示與 Wireguard 伺服器通訊的兩個客戶端節點的終端。

測試 Wireguard 網路

透過 Wireguard 網路上的伺服器和用戶端,您現在可以測試節點之間的連線和延遲。為此,請確保您的系統上安裝了網路診斷工具:

在 Fedora 中,您只需安裝,curl因為它已經附帶了開箱即用的網路工具:

對於 Arch Linux,您可以使用pacman安裝網路工具和curl

首先追蹤兩個客戶端之間資料包的路由。以下將展示 IP 封包如何從「10.0.0.2」到「10.0.0.3」:

顯示兩個 Wireguard 節點之間成功的追蹤路由命令的終端。

透過 ping 公共 IP 位址來檢查您的任何節點是否可以存取公共互聯網:

顯示從 Wireguard 網路到外部站點的延遲的終端。

最後,確認您的節點與 Wireguard 伺服器共用相同的公用 IP 位址:

終端機突出顯示三個 Wireguard 節點上的相似外部 IP 位址。

學習在 Linux 上設定 Wireguard 網路是探索 VPN 迷人世界的第一步。深入了解我們為您挑選的最佳安全 VPN 提供者。

圖片來源:Kari Shea,來自 UnsplashWikimedia Commons。所有修改和螢幕截圖均由 Ramces Red 進行。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *