美文网首页WSL
Windows11中wsl2为虚拟Linux子系统设置固定IP的

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

作者: 木巽 | 来源:发表于2022-09-08 17:00 被阅读0次

    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

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

    相关文章

      网友评论

        本文标题:Windows11中wsl2为虚拟Linux子系统设置固定IP的

        本文链接:https://www.haomeiwen.com/subject/mwsonrtx.html