分享

Windows11中wsl2为虚拟Linux子系统设置固定IP的方法

 黄爸爸好 2022-11-23 发布于上海

wsl2安装这里不介绍了,自己搜索下。安装完成之后就可以去“Microsoft store”下载自己需要的linux版本, 有ubuntu,openSUSE等,我这里介绍的是以OracleLinux9为例。

1. 在虚拟子系统中新建/etc/wsl.conf文件

执行vi /etc/wsl.conf 命令创建以文件内容:

[network]
# 设置虚拟主机的名称,默认的不好看
hostname = OracleLinux9
# 取消自动生成resolv.conf文件,这个是关键点
generateResolvConf = false

[user]
# 启动的默认用户,设为root吧,不然以后命令都要加sudo有点麻烦
default = root

如果当前不是root用户,命令前加上sudo,下面的命令同样注意下。

2. 重置resolv.conf文件

执行命令:
rm /etc/resolv.conf
刚开始这是一个链接文件

然后新建一个文件,执行 vi /etc/resolv.conf 命令,加入以下内容:

nameserver 114.114.114.114 
nameserver 180.76.76.76

表面上看起成功了,你在windows终端中执行命令:
wsl --shutdown
关闭全部的虚拟系统,然后再手工开启虚拟系统后,发现resolv.conf消失了。

看到网上的另一种方法:

vi ~/.bashrc
编辑上面的文件,加入以下内容:

echo "nameserver 114.114.114.114 
nameserver 180.76.76.76" > /etc/resolv.conf

保存后,再重启;执行ping lu.com 命令就成功了

3. 编写固定IP的启动虚拟系统的脚本

随便在windows的目录下,用记事本创建一个.bat文件,内容如下:

@echo on
REM 先关闭虚拟子系统
wsl --shutdown
REM 把这里理解为一个开机启动脚本就行
wsl -d OracleLinux_9 -u root ip addr del $(ip addr show eth0 ^| grep 'inet\b' ^| awk '{print $2}' ^| head -n 1) dev eth0
wsl -d OracleLinux_9 -u root ip addr add 192.168.60.2/24 broadcast 192.168.60.255 dev eth0
wsl -d OracleLinux_9 -u root ip route add 0.0.0.0/0 via 192.168.60.1 dev eth0

powershell -c "Get-NetAdapter 'vEthernet (WSL)' | Get-NetIPAddress | Remove-NetIPAddress -Confirm:$False; New-NetIPAddress -IPAddress 192.168.60.1 -PrefixLength 24 -InterfaceAlias 'vEthernet (WSL)'; Get-NetNat | ? Name -Eq WSLNat | Remove-NetNat -Confirm:$False; New-NetNat -Name WSLNat -InternalIPInterfaceAddressPrefix 192.168.60.0/24;"

REM 启动对应Linux系统,我这里是使用windows terminal
wt -p OracleLinux_9
注意事项

192.168.60.2为你的子系统IP地址,你可以把它改为你其它地址,只要最后一个数字要大于1即可,比如:192.168.60.8;或都把192.168.60网段全部替换为192.168.80也行。
OracleLinux_9 替换为你的子系统名称,可以通过wsl -l 命令来查看,如下图:



保存好你的bat文件,鼠标右键“以管理员身份运行”,就可以进入你的虚拟子系统了,执行ip addr命令查看你的IP地址,发现已经固定。


oracle linux subsystem

参考文章:
微软官网
张子庭博客

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多