
我需要wg-quick
在一台機器上設置多個接口,兩個接口都直接獨立地使用真正的乙太網路卡。
我似乎遇到的問題是,透過這些,我想訪問整個互聯網,我認為這意味著AllowedIPs = ::0
,但wg-quick
喜歡在本地添加路由,以便所有去往任何地方的流量都將通過這個新介面;包括任何以下wg-quick
嘗試..
有沒有辦法打電話wg-quick
告訴它「嘿,不,我希望你專門使用eno1
,而不是『預設網關』」?也許使用原始wg
?
我嘗試過在網路上閱讀很多內容,但我總是對其他人在問什麼感到困惑似乎就像類似的問題,但結果是託管多個wireguard服務或其他東西。
以下描述的是基本要點,有兩個工作組介面。在這種情況下,正在執行透明地竊取所有流量的wg0
正常操作,其中有一個可用的接口,我可以在其中配置應用程式以專門與其通訊。 我不介意您的解決方案是否被迫以這種方式工作,我可以為不支援「使用此介面/IP 進行流量」標誌的軟體設定 SOCKS 和 HTTP 代理以獲得相同的效果。wg-quick
wg1
wg0
Home ║ ISP ║ Internet
║ ║
║ ║
┌─────────────┐ ║ ║
│ │ ║ ║
│ │ ║ ║ ┌───┐
│ │ ║ ║ ╔══╪
│ eno1│ ║ ║ ║ └───┘
│ wg0 ┐│ ╙────────────────╜ ║ VPN0
│ ┐ └─────────────┘ ║
│ ╞════════════════════════════════════════╝
│ ┘ ╔════════════════════════════════════╗
│ wg1 ║ ┌─────────────┐ ║
│ ╓ ║ ┘│ router ║ ┌───┐
│ ╠═══╝ │ ╓────────────────╖ ╚══╪
│ ╙ │ ║ ║ └───┘
│ │ ║ ║ VPN1
│ │ ║ ║
└─────────────┘ ║ ║
PC
「為什麼?」。使用 openVPN,我的提供者允許開放端口,基本上本地防火牆允許,我可以公開路由,並且可以在我想要的任意數量的端口上託管服務。他們已經轉向wireguard,這很好,但他們只支援每個wireguard 連接一個開放連接埠。所以基本上對於每個我有端口轉發的應用程序,我想為其啟動一個 VPN 接口。
只使用wireguard,不使用iptables 或任何東西(我根本不明白),這可能嗎?
答案1
是的。好的。因此,從表面上看,解決方案確實很簡單,只要sudo ip route add $VPN1 via eno1
允許它透過 eno1 連接到 VPN1,無論 wg0 是否存在。您完全可以::0
在相同的命名空間只要您的應用程式支援綁定到連接介面(例如netcat -s
),就將其中一個作為預設值 (wg0)。需要注意的是,只有一個這樣的隧道可能會產生wg-quick
's Table=auto
。
然而,上週我一直在努力奮鬥的是我最初想要這樣做的目的;讓這些 wg 介面傳送入站流量!
我嘗試了很多事情;
wg-quick
天真地只是在路由就位的情況下運行多次(這會殺死所有內容並試圖wg-quick down
完全破壞您的網路堆疊)- 如上所述,旋轉多個,其中一個為
Table=auto
,其他為Table=off
- 如上所述,旋轉多個,其中一個為
wg-quick
,其他為wg
- 旋轉多個
eno1
躲在一個後面namespace
(我什至無法讓它適用於出站流量...) - 旋轉多個每個人
wg
都有自己的namespace
但即使這些工作[用於各自隧道中的出站流量](除非另有說明),所有這些都拒絕傳入連線(使用 進行測試netcat -l -p $assignedPort
),無論ufw disable
「VPN{0,1}」是否使用相同或不同的伺服器.
這裡的解決方案是我的昨天終於遇到了。魔法醬wg-quick
正在做Table=auto
; Fw馬克。
我試圖避免學習如何自己做的事情「只使用wireguard 可以嗎?」。好吧,您確實需要標記資料包並與表關聯,但是您不需要理解/模仿/重新實現什麼wg-quick
......顯然您可以使用它。
wg-quick
因此,使用該 FwMark設定到 VPN0 的預設隧道後,在設定ip route
VPN1 的重用該 FwMark為了wg
。後一個連線現在透過 eno1(根據路由),但允許從 VPN1 轉送的傳入封包(感謝 VPN0 隧道設定的表)。