
我按照教程設定了我的機器這裡使 Wireguard 介面成為唯一的介面(因此我的任何應用程式只能使用它來存取互聯網)。
這按預期工作,但現在我想從其中排除我的 LAN (192.168.0.0/16),這樣我就可以透過 SSH 存取它,使用 HTTP(S) 反向代理等。
ip 新手我嘗試設定veth
(vethVPN/vethPhys) 對並透過 vethPhys IP 設定 192.168.0.0/16 的路由:
ip link add name vethVPN type veth peer name vethPhys
ip link set vethPhys netns physical
ip -n physical addr add 10.0.0.1/32 dev vethPhys
ip -n physical link set vethPhys up
ip link set vethVPN up
ip -n physical route 192.168.0.0/16 via 10.0.0.1
我做錯了什麼?完成此操作的正確方法是什麼?
答案1
非常簡單地說:
將主網路名稱空間與 LAN 斷開連接,您將無法再使其成為 LAN 的「一部分」。
您可以將主命名空間視為與LAN 不同的網段,並使用「實體」命名空間在它和LAN 之間進行路由,但這需要在連接到LAN 的所有其他電腦上進行正確的路由(您可以將其分發,例如透過 DHCP(如果運行 DHCP 伺服器的設備可以執行此操作)。
或者,您可以使用不同的設定:保持主命名空間連接到 LAN,使用 macvlan 和wireguard 程序建立「wireguard」命名空間,將介面wg0
從該主空間移至主命名空間,然後wg0
將預設網關。
這將確保除 LAN 之外的每個目標位址都將通過wireguard 介面。