Windows10/11中,以管理员权限运行CMD或Powershell,然后执行以下两个命令
命令一
在Win10中添加IP地址192.168.31.210,其中192.168.31.210为要映射的主机IP,也就是Windows的IP,255.255.255.0为默认网关
netsh interface ip add address "vEthernet (WSL)" 192.168.31.210 255.255.255.0
不以管理员身份运行会报错,如下
管理员身份执行
Windows中使用ifconfig命令查看,执行完WSL无反应,显示本地WLAN IP为200
命令2
在WSL(Ubuntu)中添加IP地址192.168.31.200,名为eth0:1
wsl -d Ubuntu-18.04 -u root ip addr add 192.168.31.200/24 broadcast 192.168.31.255 dev eth0 label eth0:1
其中192.168.31.255为默认网关(这个网关地址参照网上有点奇怪,按理网关是192.168.31.1,而且使用192.168.31.255作为默认网关在后面Windows下执行ifconfig后看不到网关,不知道是不是设置错了)
Windows中使用ifconfig命令查看,奇怪的是WSL中IP为210,这应该是第一条命令设置的,但是这条命令的IP地址不知道有什么意义
wsl中执行ifconfig后可以看到ip为192.168.31.200,到这都是按照网上来的,这里WSL的网址又跟powershell中WSL的地址210不一样,奇怪了
参照网上的说法,将来访问WSL(Ubuntu)时将使用192.168.31.200,访问Win10时将使用192.168.31.210,而现在本地无线WIFI IP地址和WSL均为200
设置后过了一段时间,WSL用ifconfig查看又没网络了,于是重新执行下面命令进行测试
netsh interface ip add address "vEthernet (WSL)" 192.168.31.208 255.255.255.0
命令执行完无反应powershell和WSL还是无反应,和上面一样
wsl -d Ubuntu-18.04 -u root ip addr add 192.168.31.208/24 broadcast 192.168.31.1 dev eth0 label eth0:1
命令执行完powershell和WSL可以查到208的IP了,如果这时候还是使用200的话,WSL使用ifconfig查到的IP还是200