修復 WireGuard 子網衝突:重新編號、路由與安全恢復

修復 WireGuard 子網衝突:重新編號、路由與安全恢復

Ryan Foster
2026年10月11日· 7 分鐘讀完

WireGuard 子網衝突表示隧道兩端以相同目標範圍代表不同機器。解法是為一個受控 LAN 重新編號,再更新路由、peer 前綴及相關服務;握手成功或擴大 AllowedIPs 都無法區分兩台同地址主機。

關鍵要點

  • 改路由前先識別本地及遠端機器。
  • 保留獨立於待重新編號 LAN 的管理途徑。
  • 一次只改一個站點的地址,不同時改所有預設路由。
  • 核對目標身份、回程、DNS、權限及持久設定。

為何 WireGuard 子網衝突需要地址規劃?

本文適用於 Ubuntu 24.04 LTS 發行版 WireGuard 工具、已有的路由式站點互聯,以及你有管理權的遠端 LAN。指南依所列環境的官方文件編寫,未進行完整端到端實測。NetworkManager 管理的介面、容器網絡、IPv6 重新編號及受管企業閘道,須採用各自獲批准的變更程序。

先以自建網絡規劃檢查表確認責任與恢復安排。Linux 路由選擇介面;WireGuard peer 前綴為輸出封包選擇 peer,並限制輸入來源地址。它們不能替有歧義的目標地址建立身份。[1][2]

這是存取私有資源的任務。若仍需要該資源,保留自建或機構管理的方案。只有任務改為互聯網出口時,才比較家庭閘道與受維護 VPN 服務;這個選擇不會修復地址衝突。

步驟 1:記錄兩端 LAN 及管理路線

確認擬用範圍未被機構、peer、容器或可達網絡使用。以下為示例拓撲,須換成已登記的介面及地址;私有前綴並非全球唯一。

角色變更前遠端站點變更後
本地 LAN A192.168.50.0/24不變
遠端 LAN B192.168.50.0/24192.168.77.0/24
B 的 ens19 LAN 閘道192.168.50.1192.168.77.1
B 上的授權目標192.168.50.10192.168.77.10
WireGuard A / B172.31.253.1/32 / 172.31.253.2/32不變
B 的獨立管理控制台或獨立管理介面不變

WireGuard 外層端點仍須經原有管理或 WAN 路徑可達,隧道範圍與兩個 LAN 分開。若衝突其實在隧道網段,或你無法改動 B,便停止這個重新編號程序,與擁有者另選設計。

記錄固定租約、DHCP 範圍、閘道、DNS、服務綁定、ACL、監控及每個受影響 peer。預留維護時段,以新工作階段驗證控制台可用。私下備份具體 Netplan、WireGuard 及防火牆管理器檔案,保留權限;wg showconf 或 wg show ... dump 可洩露密鑰,不應貼進支援記錄。[1]

步驟 2:證明 WireGuard 網段衝突及 VPN 路由衝突

在受影響 Ubuntu 客戶端或閘道執行唯讀檢查,換上實際介面名稱及目標地址:

ip -brief address
ip -4 rule show
ip -4 route show table all
ip -4 route get 192.168.50.10
sudo wg show wg0 allowed-ips
sudo wg show wg0 latest-handshakes
sudo wg show wg0 transfer

只保存已脫敏觀察。若路由指向本地 LAN,便能解釋為何看似遠端的目標毋須穿過 WireGuard 也會回應。握手只表示近期 peer 通訊,不證明 LAN 主機身份或服務存取授權;須同時查策略規則及主路由表。[2][3]

以資產標識、經驗證的 TLS 憑證,或按既定信任程序核對的 SSH 主機密鑰確認機器。Ping 不足以識別主機。不可因地址衝突就接受改變了的 SSH 密鑰或憑證,應透過獨立管理途徑聯絡擁有者。

若路由已選中正確且不重疊的遠端範圍,改查隧道已連接但沒有流量的檢查項。不能為了服務被阻擋或缺乏轉發權限,替運作正常的 LAN 重新編號。

步驟 3:選擇重新編號或受控轉換

替 B 重新編號後,各機器端到端地址不同,這是下文主線。將 192.168.50.10 強制送入隧道的主機路由可能選中 B,卻會令相同路由上下文內的本地同地址無法使用,不能同時提供兩個身份。

方案適用條件成本或限制
為一個 LAN 重新編號能控制地址及其依賴一併改 DHCP、固定地址主機、DNS 及政策
受控地址轉換擁有者不能重新編號,但管理閘道預留別名前綴並明確定義雙向映射
獨立路由上下文應用能用隔離 namespace明確介面、DNS 及管理歸屬

WireGuard 文件說明 namespace 隔離,但移動介面會改變應用可見的網絡上下文,不能視為遠端連接中的隨手修復。[2] Netgate 的衝突子網示例使用 OpenVPN,並非 WireGuard;只引用其映射原則及限制,不把它當 WireGuard 指令來源。[4]

轉換設計要列明真實及別名前綴、入站目標映射、必要來源映射、回程路由、DNS 答案及日誌。內嵌 IP 或主動反向連接的應用仍可能失敗。NAT 不授予存取權,也不替代防火牆;無法說清這些欄位便應停止,不能套用寬泛 masquerade 規則。

步驟 4:只改受控遠端站點的編號

從 B 的控制台開始。現有 Netplan 設定中,只將 ens19 的 LAN 地址由 192.168.50.1/24 改成 192.168.77.1/24,保留 renderer 及所有管理介面欄位。以下是欄位片段,不能取代所有 Netplan 檔案:

ens19:
  addresses:
    - 192.168.77.1/24

B 若提供 DHCP,更新地址範圍及閘道選項。透過目標原有網絡管理器及控制台,改為 192.168.77.10/24、閘道 192.168.77.1;逐項遷移保留地址及其他固定主機,避免重複租約。更新服務監聽及新前綴的精確防火牆規則,保留原有轉發政策及端點規則。[5]

在獨立控制台驗證並試行 B 的 Netplan 變更:

sudo netplan generate
sudo netplan try --timeout 120

控制台、管理路線、新 LAN 閘道及目標皆如預期可達後才確認。Netplan 文件指出回退有局限;拒絕或逾時後,須獨立查實際網絡及磁碟檔案,不能假定全部已恢復。[6] 若介面由另一管理器擁有,停止並改用其有文件依據的回退程序。

在 A 的私有 wg-quick 設定中,只修改 B 的 peer 條目,保留真實公鑰、端點及憑據。本拓撲的完整前綴集合為:

AllowedIPs = 172.31.253.2/32, 192.168.77.0/24

此賦值取代該 peer 舊有集合,並非追加指令。若 peer 還負責其他獲准網絡,須明確保留。B 上 A 的 peer 仍應允許 A 的真實來源,本例是 172.31.253.1/32 及 192.168.50.0/24,配合相應回程路由。peer 前綴及路由的不同責任說明為何單改欄位不足。[1]

對這條已盤點的專用 wg-quick 隧道,從 A 的獨立控制台依次執行 sudo wg-quick down wg0、sudo wg-quick up wg0,載入已保存設定;短暫中斷是預期情況。先查 hooks 及 SaveConfig:若為 SaveConfig = true,關閉可覆蓋檔案修改,須先協調執行中與持久設定再繼續。單用 wg set 不會更新系統路由。[7]

不得清空路由、重設整個防火牆、放寬至 0.0.0.0/0,或同時改兩端預設路由求取回應。共用隧道應採用擁有者的維護程序,不可重啟其他用戶的存取。

步驟 5:驗證身份、回程及 DNS

從 A 分別重查 192.168.50.10 及 192.168.77.10:本地地址應維持本地路徑,新遠端地址應選 wg0。在 B 查返回 A 實際來源的路由。使用獲准應用請求及已確認的伺服器身份,不能只看 ICMP。[3]

檢查方法預期現象失敗時處理
比較原本地及新遠端目標路由本地及隧道路徑不同查策略表與殘留路由
核對遠端憑證或獲准主機密鑰正確 B 機器回應身份不符便停止
查 B 返回 A 來源的路由及 peer 前綴回程走獲准路徑精確修正回程或 peer 條目
查詢相關私有 DNS 解析器服務名稱解析為新地址更新權威記錄及有界快取
請求一項獲准及一項被拒服務原有權限仍有效修前綴規則,不停用政策
在批准時段重新連接再重啟地址、路由及服務一致恢復修所屬管理器的持久設定

若私有名稱只有機構解析器知道,不應更改公共 DNS 排查。停用舊地址前須考慮記錄 TTL 及應用快取。這些檢查關乎私有資源,不需要公網 IP 網站。

另一應用路徑若經代理,使用逐跳鏈路檢查獨立驗證。代理請求成功不會證明本 WireGuard 路由及回程。

步驟 6:精確恢復或保留新地址規劃

驗收失敗便停止繼續變更。從獨立控制台恢復 B 原有 LAN、DHCP、目標地址,以及本時段修改的政策和 DNS 條目。恢復 A 的已保存 peer 設定,只經盤點過的管理器重啟專用隧道;不可重新啟用已撤銷 peer,或覆蓋無關並行政策變更。

回讀原有管理存取、監聽、地址、路由及已知原服務。回到舊有重疊範圍只是恢復基線故障,不代表衝突已修好。記錄未解限制;恢復無法確認便延後後續實驗。

驗收成功時,依擁有者保留政策保存新清單及私有備份,撤銷臨時憑據、移除臨時權限,記錄 DHCP/DNS 歸屬。持久設定要經重新連接及重啟驗證,不能只看檔案已儲存。

總結

  • 先證明地址歧義,再改拓撲。
  • 經獨立管理途徑替一個受控 LAN 重新編號。
  • 一致更新路由、peer 前綴、DNS 及政策。
  • 核對不同目標身份及回程路徑。

常見問題

擴大 AllowedIPs 能修復 WireGuard 子網衝突嗎?

不能。較闊前綴可捕獲更多流量,卻無法在同一路由上下文區分兩台使用相同目標地址的機器。

為何 WireGuard 已握手卻是錯誤主機回應?

握手確認 peer 通訊,但應用路由仍可選中與遠端目標同地址的本地主機,兩者屬不同層次的證據。

可否用主機路由代替重新編號?

精確主機路由可以刻意選擇其中一端,但同一路由上下文內另一台同地址機器會無法經該路徑存取。

地址轉換一定比改 LAN 容易嗎?

不一定。轉換需要明確雙向映射、相容應用、正確 DNS 及持續政策維護,亦可令日誌及反向連接複雜化。

應一併更改 WireGuard 端點地址嗎?

若只改 B 的內部 LAN,應保留運作中的 WAN 端點及獨立管理途徑,除非其自身批准變更另有要求。

可經唯一 SSH 連接重啟隧道嗎?

不應透過唯一管理途徑執行本程序。改地址或重啟隧道前,先建立並核實獨立控制台。

恢復舊檔案是否代表恢復完成?

不是。須獨立核對執行中的地址、路由、DNS、權限及管理存取;保存檔案或回退計時器不足以證明恢復。

來源:

  1. Ubuntu 24.04 — wg(8)
  2. WireGuard — Routing & Network Namespaces
  3. Ubuntu 24.04 — ip-route(8)
  4. Netgate — Connecting OpenVPN Sites with Conflicting IP Subnets
  5. Netplan — Configuration examples
  6. Netplan — netplan try
  7. Ubuntu 24.04 — wg-quick(8)

Sources checked 2026 年 10 月 11 日。


延伸閱讀:

開啟 3 天免費試用

註冊即可免費體驗全部高級功能。

*只限新用戶;每位用戶只可獲得一次試用。

修復 WireGuard 子網衝突:重新編號、路由與安全恢復 | AethoVPN