光阴冢 赛博空间的自留地

WSL2 端口转发

最近发现很多同学都升级到了 Ubuntu 20.04 LTS,于是也就把现有的几台服务器升级了(毕竟没在跑什么需要可靠性的服务)。又发现 WSL 也可以升级了,于是就配了一下。


按照官方的教程,可以看到基本上就是换一下源,并全部更新一下就好了。由于我当时还不是 WSL2,顺便也就升级了(我还记得我以前就是 WSL2 来着)。

用了 WSL2 之后,好像暂时没有什么性能上的可观改变,在里面打开 VSCode 还是一样的慢(也有可能机器性能实在太差了)。然而有一天想在里面编辑一个 Hugo 主题的时候,发现原先使用的 localhost 没办法访问 WSL 了。忽然想起来好像 WSL2 好像已经是一个较为完整的虚拟机了,那网络什么的似乎应该也和主机分开了。搜索了一下,好像是这样的

那就需要在本机搞一个端口转发了。后来发现给 WSL2 分配的地址竟然也不是静态的(也不知道出于什么样的考虑)。又搜索了一下,发现一个可用的 Powershell 脚本。原理就是开 WSL 看一下这次的 IP,再把指定的一些端口转发一下。然后再使用 Task Scheduler 把这个脚本指定为每次登录时运行,就好啦。

1
2
powershell.exe -ExecutionPolicy Bypass c:\scripts\wslbridge.ps1
# source: https://github.com/microsoft/WSL/issues/4150#issuecomment-504947432

直接用管理员权限运行这个命令,其实还不能让端口转发立刻生效(估摸着需要重启下防火墙之类的?)。为了测试 Task Scheduler,我就直接重启了。

WSL2 neofetch

Windows Terminal 开启了毛玻璃效果还不错。虽然之前一直觉得 Fluent Design 实在是有点过于前卫。


有个有趣的发现,在 WSL2 内部,$hostname.mshome.net 指向的 IP 就是 WSL2 使用的网关。