WSL2桥接网络并配置静态IP

折腾了半天呢..


1. 桥接网络

在powershell里执行如下命令,将WSL的网卡替换为以太网

1
Set-VMSwitch WSL -NetAdapterName 以太网

2. WSL侧创建IP设置脚本

在WSL中新建脚本set-ip.sh,输入如下内容

1
2
3
4
5
6
7
8
# 清除原有IP
sudo ip addr del $(ip addr show eth0 | grep 'inet\b' | awk '{print $2}' | head -n 1) dev eth0
# 添加IP
sudo ip addr add 192.168.137.2/24 broadcast 192.168.137.255 dev eth0 label eth0:1
# 添加默认路由
sudo ip route add default via 192.168.137.1 dev eth0
# 添加默认DNS
sudo echo >/etc/resolv.conf nameserver 192.168.137.1

3. Windows侧创建IP设置脚本

在Windows中新建脚本ConfigWSLNetwork.bat,输入如下内容

记得更改set-ip.sh的路径

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
setlocal enabledelayedexpansion

:: set wsl2 ip
wsl -u root /path/to/set-ip.sh
echo set wsl ip success: 192.168.137.2

:: set windows ip
ipconfig | findstr "192.168.137.1" > nul
if !errorlevel! equ 0 (
echo windows ip has set
) else (
netsh interface ip add address "以太网" 192.168.137.1 255.255.255.0
echo set windows ip success: 192.168.137.1
)
pause

4. 执行Windows侧脚本

运行后IP即修改成功。

5. (可选)Windows侧添加自启

将Windows侧的脚本添加到C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup目录即可。