【WSL】WSL2设置自动更改hosts映射

每次关机开机后，WSL 默认会自动更换 IP 地址，对于远程访问编程很不友好。

下面几步是自动更改 wsl 中 Ubuntu20.04 系统的 hosts 映射：

将一下内容复制到 /etc/profile 或者～/.bashrc 中；

Copy
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

如果重新打开 ubuntu，发现提示 permission deny。在 windows 下找到 hosts，右键，属性，安全，给 user 用户权限。

我还发现 ssh 竟然也不是默认自动开启的，执行下面命令设置自动启动 ssh 服务；

Copy
ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service

编辑 vim /etc/rc.local， 写入

Copy
#!/bin/bash
service ssh start
exit 0

设置权限

Copy
chmod 755 /etc/rc.local

唯一额外的要求是，每次开启 wsl 请使用管理员权限，否则会报错；

在需要 ssh 远程访问的应用中，用 wslhost 替代原本的 ip 地址即可。