Await 做些相當庸俗的夢

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 使用的閘道器。



可能相關的