WSL2 用于在每次重启后创建 IP 地址为 172.23.0.1 的“vEthernet (WSL)”适配器。到目前为止运行良好,直到我们公司决定在 172.23.0.0/20 上添加另一个网络并更新路由表。
问题
现在,与 WSL(Ubuntu)之间的网络通信已不再可能,因为每个到 WSL 的流量都会因为新路由而被路由到不同的接口并迷失在不确定状态中。我通过 Wireshark 观察到了这一点。更改路由不是一个选择 - 我需要访问新网络。
选项1
我正在寻找一种方法来告诉 WSL 在重新启动后(首次启动 WSL 时)创建“vEthernet (WSL)”适配器时使用不同的 IP 地址。不幸的是,它每次都使用相同的 IP 地址重新创建适配器。我还没有找到任何关于如何或在哪里为 WSL 以太网适配器设置默认 IP 的信息。
选项 2
我尝试根据以下说明为主机适配器和 Ubuntu 分配新的 IP 地址:https://gist.github.com/wllmsash/1636b86eed45e4024fb9b7ecd25378ce
- 将 vEthernet(WSL)适配器 IP 地址更改为 172.30.0.1,删除 172.23.0.1
- 从 Ubuntu 中删除了 172.23.xx IP 地址并添加了 172.30.0.2
- 用 172.30.0.1 替换 Ubuntu 上的默认路由
我也一直在尝试使用 vEthernet(WSL)适配器上的入站/出站流量的防火墙规则。
结果:
- 我可以从 Windows 主机成功 ping Ubuntu 机器。
- 我可以成功地从 Ubuntu 机器上锁定 Windows 主机(172.30.0.1)(删除并重新添加防火墙规则后)。
- 我无法从 Ubuntu 访问互联网。我只可以在 vEthernet(WSL)接口上看到从 Ubuntu 到 Windows 主机的流量,但在 Windows 主机的正常网络接口上看不到更多传出流量。
有什么提示缺少什么吗?我更喜欢有关选项 1 的解决方案,因为我并不希望在每次重启后更改 WSL 子系统的网络配置。
答案1
可以在 regedit 中更改 WSL 以太网适配器的默认 IP(重新启动后会更改为该 IP)。请参阅此处的答案:https://learn.microsoft.com/en-us/answers/questions/1123820/set-wsl2-subnet