如何為WireGuard點對點連接分配不同的IP位址

透過編輯設定檔,您可以在點對點VPN設定中為WireGuard介面分配不同的IP位址。當連接到日本伺服器租用設施時,使用/31子網可確保每個端點都有唯一的位址,從而防止衝突。請確保更新Allowed IPs欄位,以保證本地網路和日本VPN伺服器之間的正確流量傳輸。正確的路由設定可以在存取日本伺服器租用服務時保持VPN的穩定和安全。如果路由設定錯誤,您可能會遇到無法存取本地裝置、與日本DNS伺服器連接失敗或存取日本託管資源速度慢等問題。請始終檢查您的公共IP位址和網路規則,以確保WireGuard與日本伺服器租用提供商的順暢運行。
要點
- 對點對點連接使用/31子網。這允許兩個唯一的IP位址,防止衝突並簡化網路設定。
- 為WireGuard通道中的每個端點分配唯一的IP位址。這可以避免路由問題並確保穩定的連接。
- 更新設定中的Allowed IPs欄位。這控制哪些流量可以通過通道,允許特定的路由需求。
- 在進行設定變更後,始終重新啟動WireGuard服務。這樣可以套用更新並幫助維持可靠的連接。
- 變更後測試您的WireGuard設定。使用’wg show’等指令驗證握手並確保所有端點都能正常通訊。
WireGuard點對點設定基礎
使用/31子網進行點對點連接
在設定WireGuard點對點設定時,您應使用/31子網。這個子網正好提供兩個可用的IP位址,非常適合點對點連接。WireGuard通道不需要廣播位址,因此/31子網可以高效運作。這樣可以節省位址空間並保持網路簡單。
使用/31子網是RFC 3021定義的特殊情況,其中子網中的兩個IP位址可用於點對點連結,以節省IPv4位址空間。
下表顯示了為何推薦在WireGuard介面中使用/31子網:
| 在WireGuard點對點連接中使用/31子網的原因 | 說明 |
|---|---|
| 消除廣播位址 | /31子網不需要廣播位址,這對點對點連接來說是不必要的。 |
| 位址利用效率 | 使用/31子網更有效率,因為它只分配兩個IP位址,每個端點一個。 |
| 簡化設定 | 透過減少點對點連結所需的IP數量來簡化網路設定。 |
分配唯一IP位址
您必須為WireGuard通道中的每個端點分配唯一的IP位址。如果對多個WireGuard介面使用相同的位址,您將遇到路由問題。每個WireGuard介面都需要自己的位址以避免衝突。此規則適用於通道中的每個端點。
- 當您設定多個WireGuard通道時,每個通道必須有唯一的IP位址以防止路由問題。
- 如果對多個通道使用相同的IP位址,您將看到錯誤並失去連接。
理解Allowed IPs
WireGuard設定中的Allowed IPs欄位控制哪些流量可以通過通道。您為每個端點設定此欄位。如果您只想允許某些網路,可以指定一個子網。如果您想讓所有流量都通過WireGuard通道,可以使用0.0.0.0/0。
這是一個解釋Allowed IPs在WireGuard介面中如何運作的表格:
| 功能 | 說明 |
|---|---|
| 路由 | 確定哪些目標IP透過此對等點發送。 |
| 過濾 | 指定從此對等點接受哪些來源IP。 |
- Allowed IPs欄位決定哪些IP位址可以透過WireGuard通道發送流量。
- 您可以根據需要路由特定網路(如LAN子網)或所有流量。
您應該始終檢查每個WireGuard介面和端點的設定,以確保通道按預期運作。
如何使用不同IP位址設定WireGuard VPN
為每個端點設定不同IP位址的WireGuard VPN有助於建立安全可靠的點對點連接。您需要編輯每個WireGuard介面的設定檔。這個過程包括分配唯一位址、更新允許的IP和重新啟動服務。按照這些步驟完成WireGuard設定。
編輯WireGuard設定
您必須編輯每個端點的設定檔以分配不同的IP位址。此檔案控制WireGuard VPN的運作方式。您可以在/etc/wireguard/目錄中找到設定檔,通常命名為wg0.conf或類似名稱。
按照這些步驟更新您的設定檔:
- 使用文字編輯器開啟WireGuard介面的設定檔。
- 將Address欄位設定為您想要為此端點使用的不同IP位址。對點對點連結使用/31子網,例如
10.70.250.253/31。 - 為每個對等點新增或更新AllowedIPs欄位。僅包含每個端點需要的IP範圍。例如,您可以使用
AllowedIPs = 10.0.0.0/24, 192.168.1.0/24進行分流。 - 除非您想讓所有流量都透過VPN,否則避免使用
AllowedIPs = 0.0.0.0/0。 - 儲存設定檔。
提示:始終檢查設定檔中的MTU設定。某些WireGuard VPN用戶端需要特定的MTU值以避免連接問題。
以下是一個端點的設定檔範例:
[Interface]
Address = 10.70.250.253/31
DNS = 10.10.10.10
PrivateKey = CIHyP1xYRh3zl7bE6XYsXXFhrf8CXjn4mlIkEdfLAE0=
[Peer]
AllowedIPs = 10.70.250.252/31
Endpoint = 199.170.132.43:51822
PublicKey = HCYsMu1Wztk8ape2WP5HYiFZnNpn07guRNvKZw/e0mk=
範例:分配和驗證IP
您需要為WireGuard VPN中的每個端點分配不同的IP位址。為您的通道使用/31子網。以下是兩個端點的WireGuard範例設定表:
| 項目 | 總部設定 | 分公司設定 |
|---|---|---|
| WAN IP位址 | 198.51.100.15 | 198.51.100.23 |
| 通道位址 | 10.6.210.0/31 | 10.6.210.1/31 |
| 監聽埠 | 51820 | 51820 |
| LAN子網 | 10.15.0.0/24 | 10.23.0.0/24 |
完成設定檔編輯後,您應該驗證分配的IP位址是否正確。按照以下步驟操作:
- 進入系統中的介面 > 分配。
- 從可用網路埠中選擇正確的WireGuard介面。
- 將介面新增為新的OPT介面。
- 進入介面 > OPTx並啟用介面。
- 為介面提供清晰的描述。
您也可以使用wg指令檢查您的WireGuard設定。在命令列中輸入wg show查看目前設定和握手狀態。
注意:始終檢查兩個端點,確保每個WireGuard VPN用戶端都有正確的不同IP位址。
重新啟動WireGuard服務
更新設定檔後,您必須重新啟動WireGuard服務以套用變更。這一步確保您的WireGuard VPN使用新設定。
以下是您可以使用的指令表:
| 指令 | 說明 |
|---|---|
| sudo wg-quick down /etc/wireguard/wg0.conf | 停止WireGuard介面。 |
| sudo wg-quick up /etc/wireguard/wg0.conf | 啟動WireGuard介面。 |
| sudo systemctl stop wg-quick@wg0.service | 停止WireGuard服務。 |
| sudo systemctl start wg-quick@wg0.service | 啟動WireGuard服務。 |
在對設定檔進行變更後,您應該始終重新啟動WireGuard VPN。這一步有助於您避免路由和連接問題。
提示:如果重新啟動後發現問題,請檢查設定檔是否有錯誤。確保每個端點都有唯一的不同IP位址和正確的允許IP。
透過遵循這些步驟,您可以為每個端點設定具有不同IP位址的WireGuard VPN。這種方法可以保持您的VPN安全高效。在進行變更後,始終測試您的WireGuard設定以確認一切按預期運作。
WireGuard VPN伺服器連接故障排除
常見路由問題
當您在WireGuard通道中更改IP位址時,可能會遇到阻止點對點連接運作的路由問題。您可能會注意到ping失敗或WireGuard用戶端無法到達遠端端點。以下是一些您應該注意的常見問題:
- 動態DNS項目可能不會立即更新。如果您的端點使用DDNS,請確保它反映了新的IP位址。
- 如果您的端點位於NAT或防火牆後面,除非它啟動連接,否則可能無法存取。在設定中加入
PersistentKeepalive = 25有助於保持通道活動。 - 如果您將端點IP加入AllowedIPs清單中,可能會發生循環路由。這可能導致握手失敗。您需要加入手動路由來解決這個問題。
您還應該檢查AllowedIPs欄位是否包含WireGuard伺服器和每個用戶端的正確本地子網。確保伺服器和路由器上的防火牆規則允許WireGuard介面和您的LAN之間的流量。在伺服器上啟用IP轉發以允許流量通過通道。
使用PostUp/PostDown調整路由
您可以在WireGuard設定中使用PostUp和PostDown指令自動管理路由和防火牆規則。PostUp在WireGuard通道啟動時運行,PostDown在通道停止時運行。這有助於保持您的點對點連接穩定。
| 指令類型 | 範例指令 |
|---|---|
| PostUp | PostUp = ip rule add ipproto tcp dport 22 table 1234 |
| PostDown | PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE |
- PostUp在啟動WireGuard通道時加入路由或規則。
- PostDown在停用通道時刪除這些路由或規則。
- 為保持對稱性,始終為每個PostUp指令匹配一個PostDown指令。
您還可以使用PostUp來設定WireGuard介面的DNS或網域關聯。例如,使用resolvectl dns home0 10.10.10.1來設定DNS伺服器。
測試點對點通訊
更新WireGuard VPN伺服器設定後,您需要測試端點之間的連接。按照以下步驟檢查伺服器狀態並驗證您的點對點通道:
- 連接到伺服器的CLI並執行
wg show查看是否出現握手。 - 在每個對等點下查看”最新握手”行以確認通道處於活動狀態。
- 如果看不到握手,請嘗試從每個用戶端ping伺服器的公共IP或VPN IP。
- 在用戶端上,ping其他用戶端的LAN網路以檢查遠端存取。
- 使用
iperf3等工具測試端點之間的上傳和下載速度。 - 執行
traceroute或route檢查路由路徑。
提示:如果仍然存在問題,執行reresolve-dns腳本或設定systemd計時器每三十秒更新所有WireGuard端點。
透過遵循這些步驟,您可以在任何點對點設定中保持WireGuard VPN伺服器、用戶端和通道的順暢運行。
動態和多個IP的進階提示
使用動態IP位址
在WireGuard設定中,您可能需要管理動態IP位址,特別是當您的端點經常更改其公共IP時。WireGuard本身不支援動態位址,因此您必須使用變通方法來保持VPN通道穩定。許多使用者依賴動態DNS(DDNS)來處理這些更改。以下是為WireGuard通道設定DDNS的簡單方法:
- 在路由器或伺服器上啟用DDNS以追蹤變化的IP位址。
- 編輯WireGuard設定,將端點的公共IP位址替換為DDNS URL。
- 儲存更新的設定並將其作為QR碼或
.conf檔案與用戶端共享。 - 當IP位址發生變化時,DDNS會更新URL,允許WireGuard通道重新連接。
注意:WireGuard僅在啟動時轉換DNS位址。如果在通道處於活動狀態時IP發生變化,在重新啟動WireGuard介面之前,您可能會失去連接。
您可能會在這種設定中遇到挑戰。腳本和DDNS有幫助,但它們可能不適合生產環境。您必須監控VPN通道,如果發現連接中斷,就重新啟動WireGuard介面。
為WireGuard介面分配多個IP
您可以為單個WireGuard介面分配多個IP位址以支援複雜的網路設定。此方法幫助您透過一個VPN通道路由不同用戶端或網路的流量。您必須更新設定以包含所有需要的位址。以下是設定多個IP的常見方法:
| 方法 | 範例設定 |
|---|---|
| 逗號分隔的IP | AllowedIPs = 192.168.200.0/24, 10.0.0.0/24 |
| 多個AllowedIPs設定 | AllowedIPs = 192.168.200.0/24 |
| AllowedIPs = 10.0.0.0/24 |
您可以在每個端點的WireGuard設定檔中使用這些選項。這種設定有助於避免位址衝突並為不同用戶端路由流量。當發生更改時,您必須手動更新VPN設定,這對大型網路來說可能是一個缺點。
- 為每個用戶端使用不同的轉譯WireGuard位址和路由表有助於防止位址衝突。
- 當發生更改時需要手動更新VPN設定,這對企業設定來說可能是一個缺點。
- WireGuard的靜態網路設定意味著如果您更改設定,必須更新所有用戶端。
要高效管理多個IP,您可以為每個端點設定閘道和靜態路由。進入伺服器的路由設定並為每個WireGuard介面加入閘道。為每個站台分配正確的位址族和閘道。套用更改並加入靜態路由以指導流量穿過您的VPN通道。
提示:在對設定進行更改後,始終測試您的WireGuard設定。這一步確保每個用戶端和端點都能到達正確的網路。
常見問題
WireGuard點對點連接的最佳子網大小是多少?
您應該為點對點連結使用/31子網。這個子網提供兩個可用的IP位址。它有助於節省位址空間並保持WireGuard設定簡單。
可以為一個WireGuard介面分配多個IP位址嗎?
是的,您可以為單個WireGuard介面分配多個IP位址。在設定檔中加入每個位址,用逗號分隔。這種方法有助於管理不同網路或用戶端的流量。
如果公共IP發生變化,如何更新WireGuard?
您可以將動態DNS與WireGuard一起使用。在設定中用DDNS主機名替換端點的IP。當公共IP發生變化時,重新啟動WireGuard介面以恢復連接。
為什麼更改IP後WireGuard通道不傳輸流量?
檢查您的允許IP和路由規則。確保每個WireGuard端點都有唯一的位址。更改後重新啟動WireGuard服務。使用ping或wg show測試連接。
在Allowed IPs中使用0.0.0.0/0安全嗎?
在WireGuard中使用0.0.0.0/0會將所有流量路由通過VPN。僅在需要完整通道設定時使用此選項。對於分流,只指定您需要的網路。
