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

你可以透過編輯 WireGuard 設定檔,並在 Interface 區段中指定所需位址,為 WireGuard 介面設定一個不同的 IP 位址。對於兩台主機之間的點對點連線,建議使用 /31 子網路遮罩。這種方式可以避免在部署 VPN 端點(例如使用日本伺服器租用)時浪費 IP 位址。只要設定正確,就能同時確保連通性以及路由行為符合預期。修改後務必檢查,確保網路維持安全且穩定可靠。
關鍵要點
透過編輯 WireGuard 設定檔,在
[Interface]區段中設定不同的 IP 位址。使用 CIDR 表示法以利清楚明瞭。點對點連線中使用 /31 子網路以節省 IP 位址,這樣剛好提供兩個可用位址。
透過為各個 Peer 設定 AllowedIPs,可以為介面分配多個 IP 位址,從而讓 VPN 為不同網路轉送流量。
每個 WireGuard 介面都應使用獨立的金鑰對以確保安全。務必妥善保護私鑰並定期稽核設定。
定期檢查 IP 設定與防火牆規則以排除連線問題。可使用
wg與ip route等指令進行診斷。
在 WireGuard 介面上設定不同的 IP 位址
編輯 WireGuard 設定
你可以透過編輯 WireGuard 設定檔,為 WireGuard 介面分配一個不同的 IP 位址。此流程包含幾個關鍵步驟。依照以下說明即可為點對點連線完成介面設定:
開啟 WireGuard 設定檔,通常名為
wg0.conf或類似名稱。在
[Interface]區段下,新增加或修改Address行,將其設定為你選擇的不同 IP 位址,並使用 CIDR 表示法。例如:Address = 172.21.0.1/31。透過新增 PostUp 指令啟用 IP 轉送:
PostUp = sysctl -w net.ipv4.ip_forward=1設定原始位址轉換(SNAT)規則以確保路由正常運作:
PostUp = iptables -t nat -I POSTROUTING 1 -o %i -j SNAT --to-source 172.21.0.1當介面關閉時移除 SNAT 規則:
PostDown = iptables -t nat -D POSTROUTING 1 -o %i -j SNAT --to-source 172.21.0.1儲存檔案並重新啟動 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 端點時,有以下一些最佳實務:
使用預先共用金鑰(preshared key)強化安全性。
將 AllowedIPs 限制在每個 Peer 實際需要存取的 IP 範圍之內。
將 ListenPort 從預設值修改為其他連接埠,以降低被掃描的機率。
保持系統與核心(內核)為最新版本,以取得最新的 WireGuard 功能與安全修補。
監控連線日誌,留意異常活動。
定期輪替金鑰。
透過防火牆規則限制可存取 WireGuard 連接埠的 IP 範圍。
刪除設定中已不再使用的 Peer。
定期檢視整體設定,確保只有正確的裝置能夠接入。
每個 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 解析失敗。要排查問題,你可以依照以下步驟進行:
檢查公鑰與私鑰是否正確。
仔細核對 AllowedIPs 清單是否正確無誤。
使用
ip route和ip addr show dev <wg-interface>來確認路由與 IP 是否正確。確保
/proc/sys/net/ipv4/ip_forward的值為 1。如果將 VPN 使用者接入既有網路,需將
/proc/sys/net/ipv4/conf/all/proxy_arp設定為 1。將這些設定寫入
/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 指令查看端點是否處於活動狀態。接著檢視路由與防火牆規則,並修正其中的錯誤。

