如何将所有 Windows 流量路由到 WSL2?

如何将所有 Windows 流量路由到 WSL2?

我想将所有流量从 Windows 路由到 WSL2 (172.28.20.4),但我对网络了解甚少。

我确实尝试添加一条路线:

route add 0.0.0.0 mask 0.0.0.0 172.28.20.4

我还在 WSL2 中启用了 IP 转发,并运行了以下命令:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

生产:

Network destination Network mask Adr. gateway Adr. Metric interface
          0.0.0.0          0.0.0.0      192.168.1.1     192.168.1.37     35
          0.0.0.0          0.0.0.0      172.28.20.4      172.28.16.1   5001
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    331
      172.28.16.0    255.255.240.0         On-link       172.28.16.1   5256
      172.28.16.1  255.255.255.255         On-link       172.28.16.1   5256
    172.28.31.255  255.255.255.255         On-link       172.28.16.1   5256
     172.28.192.0    255.255.240.0         On-link      172.28.192.1   5256
     172.28.192.1  255.255.255.255         On-link      172.28.192.1   5256
   172.28.207.255  255.255.255.255         On-link      172.28.192.1   5256
      192.168.1.0    255.255.255.0         On-link      192.168.1.37    291
     192.168.1.37  255.255.255.255         On-link      192.168.1.37    291

问题是 eth0 (172.28.20.4) 位于 NAT 后面,因此如果我删除:

0.0.0.0          0.0.0.0      192.168.1.1     192.168.1.37     35

我将无法再访问互联网。

答案1

这在 WSL2 的默认配置下无法工作,因为系统设置为通过主机路由 WSL2 的流量– 您的主机操作系统是 WSL2 的“默认网关”– 因此您通过这种方式得到的只是一个路由循环。

使其工作的最简单方法是为虚拟机添加第二个网络接口——在 Hyper-V 虚拟交换机术语中,您需要创建一个“外部”vSwitch,它允许虚拟机直接访问物理 LAN。然后,通过第二个接口的物理网关应设置为虚拟机的默认网关。

我真的建议使用“完整”的 Hyper-V VM 来实现这一点,因为这样你就可以在不与 WSL 的自动化发生冲突的情况下进行配置:你只需创建虚拟交换机,将它们分配给 VM,它就会停留就这样。(此外,Hyper-V VM 被设计为在后台自动运行,并且其客户操作系统将拥有一个开箱即用、功能齐全的服务管理器(初始化系统)。)

最后,我认为这些都不能真正让你在 Windows 上使用 MP-TCP。这是 TCP 本身需要理解的事情——也就是说,端点连接的必须理解它——它不是可以通过网关注入的东西,除非该网关成为一个完整的 TCP 代理(这不是路由器/网关通常会做的事情)。

答案2

你可能想要一个真正的网卡而不是 IP,而是一个设备,所以你需要买一个非常便宜的 USB WiFi 或更便宜的 USB 网卡,然后直接把它插入 WSL 而不是 Windows ......所以在获得设备后访问https://github.com/dorssel/usbipd-win

此后,如果这是您真正想要的,您将不再使用 Windows IP 等。您将有 2 个单独的网卡,每个计算机一个。

相关内容