解決WSL2的服務在別的機器不能訪問的問題

 

解決使用wsl2時,無法在別的電腦連結本機Linux子系統服務的問題

keywords:wsl2 端口重定向 ubuntu ssh localhost forwarding docker

我們在迫不及待的更新了win10和wsl2之後,突然發現wsl2不再是原來的網絡模式了,新的模式是nat模式,而不是原來的與win10共享模式。這給我們帶來了一點麻煩。最明顯的是我們原本可以在其他電腦上ssh到wsl裡(比如ubuntu)但是現在卻只能用腳本開發一個轉發器設置。但這個設置器問題也是很明顯的,需要轉發什麼端口,必須自己改程序明確說明。

而筆者另闢蹊徑,對wsl直接下手!

我們發現,實際上wsl有轉發端口,但是隻監聽120.0.0.1(16進制7f000001)。
我們又發現,ubuntu等系統在監聽的時候運行的是wslhost.exe(在c:\windows\system32\lxss目錄中)故我們對此文件開刀!

 

>cd C:\Windows\System32\lxss\
>wsl -- xxd -g 1 -ps wslhost.exe > lgs.txt
>wsl -- vim lgs.txt
in vim:
  /0100007f
    ~我們只需要改第一個符合條件的(一共有倆)
     ~就把這個改成00000000就行
  :x

>wsl -- xxd -r -g 1 -ps lgs > wslh.exe
>wsl --shutdown

再修改一下wslhost.exe文件的權限,讓我們可以覆蓋他

>ren wslhost.exe wslold.exe
>ren wslh.exe wslhost.exe

OK~~~~~~~~

鏈接:https://pan.baidu.com/s/1IKvKSyXTm0CVsQv_027w6w 
提取碼:6iea

-------------------------------------------------
by Hawk Lin(好小愛新) 20200628

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章