admin管理员组文章数量:1530846
Windows中wsl2为虚拟Linux子系统设置固定IP的方法
- 1.设置Windows vEthernet为固定IP
- 2. 确认Linux子系统的名称
- 3. 编写一个bat脚本并执行
在使用Windows的wsl时,经常需要Linux子系统和Windows宿主机之间通信。但wsl默认情况下,Linux子系统和Windows vEthernet虚拟适配器的IP每次启动后都不一样。给很多应用带来不便。在百度上很多解决方法,经过之次尝试,认为下面的方法简单有效。
我解决此问题时的系统环境:
宿主机:Windows 10 专业版 22H2 操作系统内部版本:19045.2311
子系统:Ubuntu 22.04.1 LTS Linux version 5.10.16.3-microsoft-standard-WSL2 (oe-user@oe-host)
1.设置Windows vEthernet为固定IP
2. 确认Linux子系统的名称
打开Windows命令提示符查看Linux子系统名称
C:\Users\zhangcheng>wsl -l
适用于 Linux 的 Windows 子系统分发版:
Ubuntu (默认) #记住这个名称,脚本里要用
docker-desktop-data
docker-desktop
3. 编写一个bat脚本并执行
打开记事本,把下面这段代码按照自己的运行环境配置。
@echo on
REM 先关闭虚拟子系统
wsl --shutdown
REM 以下的Ubuntu为第2步查到的Linux子系统名称
REM IP地址根据自己的需要配置
wsl -d Ubuntu -u root ip addr del $(ip addr show eth0 ^| grep 'inet\b' ^| awk '{print $2}' ^| head -n 1) dev eth0
wsl -d Ubuntu -u root ip addr add 172.30.16.2/24 broadcast 172.30.16.255 dev eth0
wsl -d Ubuntu -u root ip route add 0.0.0.0/0 via 172.30.16.1 dev eth0
powershell -c "Get-NetAdapter 'vEthernet (WSL)' | Get-NetIPAddress | Remove-NetIPAddress -Confirm:$False; New-NetIPAddress -IPAddress 172.30.16.1 -PrefixLength 24 -InterfaceAlias 'vEthernet (WSL)'; Get-NetNat | ? Name -Eq WSLNat | Remove-NetNat -Confirm:$False; New-NetNat -Name WSLNat -InternalIPInterfaceAddressPrefix 172.30.16.0/24;"
REM 启动对应Linux系统
wt -p Ubuntu
保存成.bat文件后右击选择“以管理员身份运行”。再次打开Ubuntu就是脚本里指定的IP了。
Done.
版权声明:本文标题:Windows中wsl2为虚拟Linux子系统设置固定IP的方法 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1725035930a1003458.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论