虚拟网络接口和绕过 VPN 的路由

虚拟网络接口和绕过 VPN 的路由

我经常连接到系统范围的 VPN,某些应用程序需要绕过该 VPN。在我的家庭网络上,我目前在另一个我使用的盒子上运行 SOCKS 代理,例如,在单独的“无 VPN”Firefox 配置文件中。我需要的是一种在任何 LAN 上执行此操作的独立方法,希望是在接口级别,但不一定。

  1. 如何创建这样的接口,并让它使用可用的“父”连接(以太网、WiFi)?这是 TUN/TAP 吗?桥?
  2. 有没有办法将从路由器获得的原始(无 VPN)默认路由应用到此接口,从而允许流量绕过来自 VPN 的新默认路由?例如,我需要它在酒店 WiFi 上“正常工作”。

VirtualBox 有一个很酷的“桥接”网络适配器,它看起来就像 LAN 上具有自己的 MAC/IP 的独立物理设备。也许有办法复制它?

寻找特定的ip命令或 NetworkManager 指令(运行 Debian KDE)。

答案1

如果您特别想要将某些内容放入网络命名空间中,请创建一个macvlanoripvlan接口。这些是与 VirtualBox 的“桥接网络”网络 Tap 驱动程序行为方式最接近的内置等效方式 - macvlan 将拥有自己的 MAC 地址,并像桥接到其父接口一样工作,而 ipvlan 将共享原始 MAC 地址。

Macvlan接口不支持MAC地址伪装VirtualBox 在连接到 Wi-Fi 网络时也会这样做(每个关联客户端仅限一个 MAC),因此 ipvlan 将是更有用的选择。

(或者,您可以创建一个veth-pair 来充当主命名空间和单独命名空间之间的电缆;数据包将遵循主机的路由表,您可以在其中使用“策略路由”来引导来自 veth0 的所有内容使用特定的表.)

对于所有其他情况,这种虚拟接口并不是真正有用,因为它只做与您的虚拟接口完全相同的事情。真实的接口也一样——原来的eth0接口wlan0没有失去对本地网络的访问权,所以不需要一个新的;即使您确实创建了一个新的 ipvlan 接口,实际的唯一方法使用这将是做与你已经做的基本相同的过程。

也就是说,即使 VPN 处于活动状态,您仍然可以告诉软件将套接字绑定到 wlan0,或者 wlan0 的 IP 地址,就像使用虚拟接口一样 – 无论哪种方式,影响将使用哪个默认路由的是路由表,而不是接口;无论哪种方式,您都需要搞乱“策略路由”才能使其工作,因此您最好直接使用真实的界面来完成它。

相关内容