首先在 Windows PowerShell 中查询 WSL 虚拟网卡的 IP 地址

PS C:\WINDOWS\system32> ipconfig                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Windows IP 配置


以太网适配器 vEthernet (Default Switch):

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::6960:7c0f:966c:5dc5%27
   IPv4 地址 . . . . . . . . . . . . : 172.27.112.1
   子网掩码  . . . . . . . . . . . . : 255.255.240.0
   默认网关. . . . . . . . . . . . . :

以太网适配器 vEthernet (WSL):

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::387b:5180:55b1:80af%63
   IPv4 地址 . . . . . . . . . . . . : 192.168.96.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :

以太网适配器 以太网 2:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::8a8:4b7b:a9c7:763e%10
   IPv4 地址 . . . . . . . . . . . . : 180.3.15.42
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :

无线局域网适配器 WLAN:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::1dd9:8567:5085:a446%12
   IPv4 地址 . . . . . . . . . . . . : 192.168.31.228
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 192.168.31.1

这里可以看到 WSL 网卡的 IP 地址为 192.168.96.1。

再打开 WSL Shell,查看当前获取的 IP 地址。

root@DESKTOP-9U7VSI7:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether e6:a9:5d:27:19:0b brd ff:ff:ff:ff:ff:ff
3: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/sit 0.0.0.0 brd 0.0.0.0
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:32:1a:55 brd ff:ff:ff:ff:ff:ff
    inet 192.168.109.65/24 brd 192.168.109.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::215:5dff:fe32:1a55/64 scope link
       valid_lft forever preferred_lft forever

可以看出 eth0 的 IP 地址与 Windows 中的地址不在同一个网段,这里我们调整一下 WSL 的 IP 地址
首先给 WSL 添加一个与 Windows 网卡相同网段的 IP

ip addr add 192.168.96.2/24 brd 192.168.96.255 dev eth0
ip route add default via 192.168.96.1 dev eth0

再将原来不同 IP 段的地址删掉

ip addr delete 192.168.109.65/24 dev eth0

此时 WSL 应该可以正常访问网络了。

发表评论