wsl2固定IP地址
1.Hyper-V管理器新建外部虚拟交换机
2.用户根目录新建.wslconfig文件
[wsl2]
networkingMode=bridged
vmSwitch=WSLBridge
dhcp=false
3. 查看WSLBridge的网段
- 由此可知,网段是192.168.132.XXX
- 把wsl的ip地址设置成成同一个网段,比如192.168.132.1
4.编辑wsl中两个配置文件
5.在wsl内部新建wsl_external.network文件
sudo vim /usr/lib/systemd/network/wsl_external.network
[Match]
Name=eth0
[Network]
Description=Ubuntu
DHCP=false
Address=192.168.132.1/24 #与WSLBridge在同一个网段
5. 重启wsl
wsl --shutdown
- 主机连接wsl的内部ip地址
PS C:\Users\Pondsi> ping 192.168.132.1
正在 Ping 192.168.132.1 具有 32 字节的数据:
来自 192.168.132.1 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.132.1 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.132.1 的回复: 字节=32 时间=1ms TTL=64
来自 192.168.132.1 的回复: 字节=32 时间<1ms TTL=64
192.168.132.1 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 1ms,平均 = 0ms
- wsl上外部网
pondish@DESKTOP-NHD2HJT:$ ping baidu.com
PING baidu.com (39.156.66.10) 56(84) bytes of data.
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=1 ttl=47 time=101 ms
^C64 bytes from 39.156.66.10: icmp_seq=2 ttl=47 time=141 ms
--- baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 4158ms
rtt min/avg/max/mdev = 101.184/121.214/141.245/20.030 ms
wsl能上外部网,但ping不通主机
1. 在防火墙的入栈规则中添加一条允许wsl2访问主机的规则
在powershell中以管理员权限输入以下命令
New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSLBridge)"
2. ok
pondish@DESKTOP-NHD2HJT:~$ ping 192.168.132.163
PING 192.168.132.163 (192.168.132.163) 56(84) bytes of data.
64 bytes from 192.168.132.163: icmp_seq=1 ttl=128 time=0.654 ms
64 bytes from 192.168.132.163: icmp_seq=2 ttl=128 time=0.700 ms
64 bytes from 192.168.132.163: icmp_seq=3 ttl=128 time=1.01 ms
^C
--- 192.168.132.163 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2068ms
rtt min/avg/max/mdev = 0.654/0.786/1.006/0.156 ms