我按照教程设置了我的机器这里使 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 接口。