尝试绑定 IP 结果一重启就回到解放前,只能是想一个其它办法来绕过,毕竟 IP 可变,但是 hostname 可以固定不变。
每次在 wsl 启动后把 ip 更新到 windows 的 etc/hosts 文件里面不就行了? 就按这个思路来。
# 拿到 wsl 的 ip 地址
$ipLine = wsl --exec ip -a a | findStr inet | findStr eth0
$wslIP = $ipLine.trim().split(" |/")[1]
echo "WSL new ip is: " $wslIP
# 写入 etc\hosts 文件中
$hostsPath = "$env:windir\System32\drivers\etc\hosts"
if($wslIP) {
$newHosts = Get-Content $hostsPath | Foreach {if ($_ -match '^\s*([^#].*?\d{1,3}.*?wsl.*)') { $wslIP + " wsl"} else {$_}}
echo $newHosts
$newHosts | Out-File $hostsPath -enc ascii
}
保存到 test.ps1
文件中运行即可。
开心。
此脚本仅提供一个思路,如果能运行是最让人开心的,如果不能需要调整一下脚本中具体的关键词,如 eth0, wsl 等等
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.