如何使用Windows WSL配置路由?这可能吗?


5

根据sysctl,我注意到IP转发似乎已在WSL(Windows 10pro 1709)中启用。我希望可以用它在WSL上制作一个软件路由器,以便在同一物理主机上处理Hyper-V VM流量。VM和主机可以通过共享的/ 24 ipv4子网进行通信。

理想情况下,我想使用WSL来配置类似iptables的规则,或者使用RAW套接字使用某种软件路由器程序来重写流量。

# on the WSL bash
$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

我的Windows主机和VM都在192.168.4.X中。主机是192.168.4.215。192.168.4.228是VM。

我在Windows防火墙中添加了一条规则,以允许该子网上的每个传入TCP端口,并通过传输WSL主机提供的网页和VM下载的网页来测试连接性。(例如,python -m SimpleHTTPServer在wsl中运行并 curl http://192.168.2.215在vm上使用)

我已将Windows主机添加为VM内的默认网关:

# route add default gw 192.168.4.215
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.4.215   0.0.0.0         UG    0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.4.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

但是我在VM上启动的TCP连接没有被Windows(例如curl http://<publicip>。)路由。无法连接

我还需要在Windows中解除封锁吗?

编辑

我有些放弃了。因为我要对VM流量进行的所有操作都是通过主机的VPN隧道对其进行NAT,所以我最终使用了一个具有powershell的特殊NAT接口:

https://serverfault.com/questions/911578/windows-10-pro-as-a-nat-between-two-interfaces

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.