如何在WSL2中固定IP - 详细指南

silverwq
2022-05-17 / 0 评论 / 551 阅读 / 正在检测是否收录...

一、问题概述

很多时候为了在linux环境下开发,我们会把环境装在wsl2中,本地host文件映射到wsl2的ip地址,但是wsl2每次重启之后,ip地址一直变化,我们就不得不一直修改host文件,虽然直接固定ip不好实现,不过我们可以通过以下方式曲线救国。

二、解决办法

  1. 在wsl的/etc/profile文件底部增加以下代码
    ipaddr=$(ifconfig eth0 | grep 'inet ' | awk '{print $2}')
    sed -i '/wslhost/d' /mnt/c/Windows/System32/drivers/etc/hosts
    echo "$ipaddr wslhost" >> /mnt/c/Windows/System32/drivers/etc/hosts

    注意:必须在window电脑上,修改hosts的文件权限为可修改,默认这个文件是不允许修改的,不然wsl没法修改

  2. 至此,每次启动wsl之后,就会自动设置host的ip映射关系,以后就可以直接用wslhost这个域名访问wsl2了
  3. 当然,如果不需要配置自定义域名,可以直接使用localhost,可以直接访问wsl2,不过我在使用过程中发现,这种方式会比较慢,并且有时候莫名其妙的无法访问。

三、拓展

wsl中如何访问windows上的服务呢?
只需要cmd里ipconfig获取ip,或者在wsl里通过以下方式获取windows主机的ip,然后自己通过ip访问即可,注意要设置好防火墙的权限。

ipwindows=$(grep nameserver /etc/resolv.conf | awk '{print $2}')
0

评论 (0)

取消