Varidata 新聞資訊
知識庫 | 問答 | 最新技術 | IDC 行業新聞
Varidata 官方博客

如何為 WireGuard 介面設定不同的 IP 位址

發布日期:2026-02-25
WireGuard 介面 IP 位址設定示意圖

你可以透過編輯 WireGuard 設定檔,並在 Interface 區段中指定所需位址,為 WireGuard 介面設定一個不同的 IP 位址。對於兩台主機之間的點對點連線,建議使用 /31 子網路遮罩。這種方式可以避免在部署 VPN 端點(例如使用日本伺服器租用)時浪費 IP 位址。只要設定正確,就能同時確保連通性以及路由行為符合預期。修改後務必檢查,確保網路維持安全且穩定可靠。

關鍵要點

  • 透過編輯 WireGuard 設定檔,在 [Interface] 區段中設定不同的 IP 位址。使用 CIDR 表示法以利清楚明瞭。

  • 點對點連線中使用 /31 子網路以節省 IP 位址,這樣剛好提供兩個可用位址。

  • 透過為各個 Peer 設定 AllowedIPs,可以為介面分配多個 IP 位址,從而讓 VPN 為不同網路轉送流量。

  • 每個 WireGuard 介面都應使用獨立的金鑰對以確保安全。務必妥善保護私鑰並定期稽核設定。

  • 定期檢查 IP 設定與防火牆規則以排除連線問題。可使用 wgip route 等指令進行診斷。

在 WireGuard 介面上設定不同的 IP 位址

編輯 WireGuard 設定

你可以透過編輯 WireGuard 設定檔,為 WireGuard 介面分配一個不同的 IP 位址。此流程包含幾個關鍵步驟。依照以下說明即可為點對點連線完成介面設定:

  1. 開啟 WireGuard 設定檔,通常名為 wg0.conf 或類似名稱。

  2. [Interface] 區段下,新增加或修改 Address 行,將其設定為你選擇的不同 IP 位址,並使用 CIDR 表示法。例如:Address = 172.21.0.1/31

  3. 透過新增 PostUp 指令啟用 IP 轉送:
    PostUp = sysctl -w net.ipv4.ip_forward=1

  4. 設定原始位址轉換(SNAT)規則以確保路由正常運作:
    PostUp = iptables -t nat -I POSTROUTING 1 -o %i -j SNAT --to-source 172.21.0.1

  5. 當介面關閉時移除 SNAT 規則:
    PostDown = iptables -t nat -D POSTROUTING 1 -o %i -j SNAT --to-source 172.21.0.1

  6. 儲存檔案並重新啟動 WireGuard 服務以使變更生效。

提示:務必反覆核對你的 IP 位址設定。確保格式正確,且包含子網路遮罩。

在編輯 WireGuard 設定時,常見的一些錯誤包括:

錯誤

說明

IP 位址格式不正確

Address 欄位必須包含子網路遮罩才能被正確解析。

缺少子網路遮罩

僅提供 IP 而不帶遮罩,可能導致設定錯誤。

你應始終為 WireGuard 介面規劃獨立的位址空間,以避免與網路中其他裝置衝突。IP 位址必須採用 CIDR 表示法,例如 10.0.0.1/32

在點對點情境中使用 /31 子網路

/31 子網路非常適合點對點連線。這種子網路精準提供兩個可用 IP 位址,正好滿足兩台主機之間的 WireGuard 部署需求。你可以為每個 WireGuard 介面分配一個位址。這種方式有助於避免浪費網路中的可用位址。

  • /31 子網路與 MikroTik 裝置不相容。

  • 僅當雙方裝置都支援 /31 時才應使用。

  • 每個介面在 /31 範圍內都必須具有唯一的 IP 位址。

使用 /31 子網路可以讓你的 WireGuard 設定更加有效率,同時也能使網路架構更為清晰且易於管理。

分配多個 IP 位址

要為 WireGuard 介面分配多個 IP 位址,可以在 Peer 區段中使用 AllowedIPs 設定。你可以透過逗號分隔的方式寫入多個 IP 位址或位址範圍,或者為同一個 Peer 多次使用 AllowedIPs 設定。例如:

[Peer]
PublicKey = fE/wdxzl0klVp/IR8UcaoGUMjqaWi3jAd7KzHKFS6Ds=
AllowedIPs = 192.168.200.0/24, 10.0.0.0/24
# 或者:
AllowedIPs = 192.168.200.0/24
AllowedIPs = 10.0.0.0/24

如果網路有需要,你也可以為 WireGuard 介面關聯多個不同的 IP 位址。如此一來,同一條 VPN 通道就能為多個網路轉送流量。你應在每個 Peer 的 AllowedIPs 欄位中列出所有需要的 IP 位址或網段。這種方式在 WireGuard 部署中為你提供了更大的彈性與控制力。

只要遵循上述步驟,你就可以按需自訂 WireGuard 介面的不同 IP 位址設定,從而提升網路效率與安全性。

WireGuard 點對點連線設定

設定唯一的端點

在點對點連線中,你需要為每個 WireGuard 介面設定唯一的端點。每個介面都必須擁有獨立的一對私鑰與公鑰。這樣可以確保連線安全,只允許可信裝置接入。你務必妥善保護私鑰,設定 600 權限保存,並且不要分享或提交到版本控制系統中。

在設定 WireGuard 端點時,有以下一些最佳實務:

  1. 使用預先共用金鑰(preshared key)強化安全性。

  2. 將 AllowedIPs 限制在每個 Peer 實際需要存取的 IP 範圍之內。

  3. 將 ListenPort 從預設值修改為其他連接埠,以降低被掃描的機率。

  4. 保持系統與核心(內核)為最新版本,以取得最新的 WireGuard 功能與安全修補。

  5. 監控連線日誌,留意異常活動。

  6. 定期輪替金鑰。

  7. 透過防火牆規則限制可存取 WireGuard 連接埠的 IP 範圍。

  8. 刪除設定中已不再使用的 Peer。

  9. 定期檢視整體設定,確保只有正確的裝置能夠接入。

每個 WireGuard 介面都需要單獨的金鑰對,這項要求能幫助你的點對點部署更加安全且可靠。

提示:務必定期稽核你的 WireGuard 設定。持續檢查有助於在問題影響連線之前提前發現並加以解決。

單一 IP 與多個 IP 的取捨

你需要根據實際需求決定是否為 WireGuard 介面分配單一 IP,還是多個 IP 位址。這個選擇會影響網路管理方式以及未來的擴充能力。將介面設定為單一 IP 位址,路由與管理會更加簡單;而使用多個 IP 位址,則能讓同一介面承載更多網路,但也會帶來設定複雜度的提升。

以下的比較可以協助你做出選擇:

面向

單一 IP 位址

多個 IP 位址

路由簡化

簡化路由與整體管理

因需精細路由而提升管理難度

可擴充性

在複雜架構中可能限制擴充能力

提高擴充能力,但也增加管理複雜度

管理複雜度

在少量 Peer 情境下較易管理

在多 Peer 情境下管理較繁瑣

效能

單一實例下通常效能較佳

在複雜部署中可能面臨效能挑戰

如果你需要的是一個簡單明瞭的 WireGuard 部署,那麼為每個介面使用單一 IP 位址是不錯的選擇。如果你的網路必須支援多個子網路或複雜路由,則可以考慮設定多個 IP 位址。始終在「簡化運維」與「彈性需求」之間取得平衡。

連通性檢查與故障排除

確認 IP 分配是否正確

你應當隨時確認 WireGuard 介面上的 IP 位址是否設定正確。首先使用合適的指令來檢查設定。wg 指令可以顯示目前通道狀態;使用 ip-link 可新增或刪除介面;ip-address 用於為介面設定位址;ip-route 可以管理並檢視路由表;show 指令則可顯示目前設定與執行時資訊。

以下是這些指令的快速參考:

指令

說明

wg

管理 WireGuard 通道介面設定的工具。

ip-link

用於新增或刪除 WireGuard 介面。

ip-address

為介面設定 IP 位址。

ip-route

管理介面相關的路由表。

show

顯示目前設定與執行狀態資訊。

你也可以檢查各個 Peer 的狀態,留意端點位址、AllowedIPs 與最近握手時間等資訊。例如:

  • Peer #1:端點 192.168.2.1:50074,Allowed IPs 10.0.0.2/32,最近一次握手為 4 分鐘前。

  • Peer #2:端點 99.203.28.43:36770,Allowed IPs 10.0.0.10/32,最近一次握手為 5 分鐘前。

排查 Ping 不通的問題

Ping 不通往往代表設定或網路存在問題。你可能會看到握手失敗,或者完全沒有任何錯誤訊息。路由錯誤也會導致連線中斷,表現為 Ping 沒有回應或 DNS 解析失敗。要排查問題,你可以依照以下步驟進行:

  1. 檢查公鑰與私鑰是否正確。

  2. 仔細核對 AllowedIPs 清單是否正確無誤。

  3. 使用 ip routeip addr show dev <wg-interface> 來確認路由與 IP 是否正確。

  4. 確保 /proc/sys/net/ipv4/ip_forward 的值為 1。

  5. 如果將 VPN 使用者接入既有網路,需將 /proc/sys/net/ipv4/conf/all/proxy_arp 設定為 1。

  6. 將這些設定寫入 /etc/sysctl.conf/etc/sysctl.d 以便永久生效。

你也可以使用 tcpdump 來分析流量,並且每次只針對一台主機與一個介面進行檢查,以便快速定位問題。

路由與防火牆問題

路由與防火牆設定不當會阻斷流量或造成封包遺失。你可能會看到流量被阻擋、路由路徑錯誤,甚至完全中斷連線。有時 NAT 或防火牆規則會攔截回程流量。下表列出了一些常見問題類型:

問題類型

說明

流量被阻斷

防火牆規則攔截了流量。

路由路徑錯誤

由於路由錯誤,流量未能到達目標。

通道建立失敗

錯誤設定阻止了通道建立。

無法收發封包

封包未能成功通過網路。

連線時好時壞

間歇性連線問題。

完全斷線

VPN 完全失去連線。

封包遺失或資料損壞

封包在傳輸過程中遺失或被破壞。

NAT/防火牆問題

設定不當的規則阻斷了回程流量。

為了解決上述問題,你需要重新檢視防火牆規則:放行已建立連線與必要連接埠上的新連線,並拒絕其他所有轉送流量。務必定期檢查設定與路由配置,確保 VPN 長期穩定運作。

WireGuard 的路由與 NAT 方案

正確設定路由與 NAT 對於穩定的 WireGuard 連線至關重要。你需要確保設定能夠支援裝置與網路之間的正常流量轉送。本節將協助你避免常見錯誤,並改善整體 VPN 使用體驗。

靜態路由設定

必須設定靜態路由,讓裝置知道應將流量送往何處。如果你希望所有網際網路流量都走 VPN,可以在設定中加入 AllowedIPs = 0.0.0.0/0。有些路由器或韌體可能不支援此設定,因此務必參考特定裝置的官方文件。

許多使用者常常忘記在閘道設定中啟用「允許使用非本地閘道」(use non-local gateway)選項,這會導致路由問題。你還應確保每條通道使用不同的監聽連接埠,若多條通道共用同一連接埠,往往會造成衝突。

避免路由問題的一些建議:

  • 檢查閘道設定,確保其允許將流量送往通道外部網路。

  • 為本地網路與 VPN 網路使用不同子網路。例如,如遇 IP 衝突,可將家庭網路改為 192.168.23.x/24。

  • 如需讓所有流量都透過 VPN,可為此另外建立第二個設定檔(或設定檔案)。

提示:每次修改設定後都要進行檢查,如此可以在問題真正造成影響之前將其發現並修復。

NAT 設定

NAT(網路位址轉換)協助位於路由器或防火牆後方的裝置與其他網路通訊。WireGuard 內建了一些特性來配合 NAT,使你的連線在裝置變更網路環境時仍能保持可用。

要在伺服器上啟用 NAT,可以在設定檔的 [Interface] 區段中加入如下內容:

PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

eth0 替換為你實際的 LAN 介面名稱。

你必須在伺服器上啟用 IP 轉送,以便流量在不同介面之間轉送。在用戶端端,需要在 AllowedIPs 設定中包含你的 LAN 子網路,例如 AllowedIPs = 192.168.2.0/24, 192.168.1.0/24

啟用 NAT 時,要特別留意防火牆規則。只放行你真正需要的流量,並盡可能阻擋其他所有請求。設定不當的 NAT 或防火牆很可能暴露你的網路安全風險。因此在完成設定後務必進行安全性檢視。

注意:在 WireGuard 介面建立並分配好之後,NAT 規則才能生效。如果設定正確,出站 NAT、1:1 NAT 以及連接埠轉送都會如預期運作。

只要依照上述步驟操作,你就能有效避免大部分連通性問題,同時維持 VPN 的安全性。

總之,你可以透過幾個清楚的步驟為 WireGuard 介面設定不同的 IP 位址。只要正確設定唯一金鑰、分配位址,並妥善運用 AllowedIPs 欄位進行路由控制,就能架設出安全高效的 VPN。如果遇到問題,優先檢查防火牆設定、金鑰配對以及子網路衝突等因素。透過核心參數調校與監控等進階方案,還可以進一步提升連線穩定性。無論是初學者還是進階使用者,在部署 WireGuard 時都可能遇到各式各樣的挑戰,其中很大一部分源於相關文件過於簡略。需要更多協助時,可以參考諸如「WireGuard VPN 用戶端設定範例」或「WireGuard 伺服器設定」等指南。

常見問題(FAQ)

如何為 WireGuard 介面設定一個不同的 IP 位址?

只需編輯設定檔,在 [Interface] 區段中加入你選擇的 IP 位址即可。同時為每個 Peer 使用 AllowedIPs 設定,確保網路能夠與正確的端點配合運作。

/31 子網路遮罩在點對點連線中有什麼作用?

/31 子網路遮罩提供兩個可用 IP 位址,你可以為兩端各分配一個。這種設定可以節省網路中的 IP 資源。你仍然需要透過 AllowedIPs 設定來定義各端點可以使用哪些位址。

能否為一個 WireGuard 介面分配多個 IP 位址?

可以。你可以在每個 Peer 的 AllowedIPs 中加入多個位址或網段,如此便可以透過同一端點為不同子網路轉送流量。

為什麼端點(Endpoint)在 WireGuard 中很重要?

Endpoint 告訴網路應將加密封包送往何處。你必須為每個 Peer 設定正確的 Endpoint。若端點設定錯誤,網路就無法正常建立連線。AllowedIPs 設定同樣會影響流量被路由到哪一個端點。

如何排查 WireGuard 網路中的連通性問題?

首先檢查端點位址是否正確;其次確保 AllowedIPs 設定符合網路實際需求。使用 wg 指令查看端點是否處於活動狀態。接著檢視路由與防火牆規則,並修正其中的錯誤。

您的免費試用從這裡開始!
聯繫我們的團隊申請實體主機服務!
註冊成為會員,尊享專屬禮遇!
您的免費試用從這裡開始!
聯繫我們的團隊申請實體主機服務!
註冊成為會員,尊享專屬禮遇!
Telegram Skype