每次關機開機後,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 地址即可。