每次关机开机后,WSL 默认会自动更换 IP 地址,对于远程访问编程很不友好。
下面几步是自动更改 wsl 中 Ubuntu20.04 系统的 hosts 映射:
-
将一下内容复制到 /etc/profile 或者~/.bashrc 中;
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 服务;
ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service
-
编辑 vim /etc/rc.local, 写入
#!/bin/bash service ssh start exit 0
-
设置权限
chmod 755 /etc/rc.local
唯一额外的要求是,每次开启 wsl 请使用管理员权限,否则会报错;
-
在需要 ssh 远程访问的应用中,用 wslhost 替代原本的 ip 地址即可。