如何從另一台電腦連線到本機端的WSL 2
WSL 2(Windows Subsystem for Linux version 2)是一個在Windows 10上執行Linux的子系統。這個強大的工具可以讓你在Windows環境中直接使用Linux系統,並運行各種Linux應用程式。但是,如果你想要從另一台電腦遠端連接到WSL 2,你可能需要進行一些額外的設定。本篇文章就來教你如何從另一台電腦連線到本機端的WSL 2。
步驟1:設定SSH伺服器
首先,你需要在WSL 2中安裝並設定SSH伺服器。你可以選擇在WSL 2中使用你熟悉的Linux發行版,例如Ubuntu,並使用sudo apt install openssh-server
安裝SSH伺服器。安裝完畢後,你需要編輯/etc/ssh/sshd_config
文件,確保Port
設定為22
,並且ListenAddress
設定為0.0.0.0
,這表示SSH伺服器會監聽所有網路介面上的連接請求。
步驟2:啟動SSH伺服器
在設定好SSH伺服器後,你需要啟動它。這可以通過使用sudo service ssh start
命令來完成。你可以使用sudo ss -tuln
確認SSH伺服器正在監聽22
端口。
步驟3:設定Windows的端口轉發
由於你是要連線到WSL 2,你需要設定從外部連線進來後要轉發到哪一個port,所以我們需要在Windows中設定端口轉發:
netsh interface portproxy add v4tov4 listenport=12222 listenaddress=0.0.0.0 connectport=22 connectaddress=localhost
備註:有一說是需要將connectaddress改成你WSL 2 在你本機上的ip 但在我的case並不適用(筆者在這邊卡超久==),但但我也提供指令給讀者參考,以我的IP:172.25.240.1來說(WSL每次重啟可能會變動此IP):
netsh interface portproxy add v4tov4 listenport=12222 listenaddress=0.0.0.0 connectport=22 connectaddress=172.25.240.1
如果重啟IP變了就要重做上述動作...你要先刪除舊的,再新增新的,也提供指令如下:
netsh interface portproxy delete v4tov4 listenport=12222 listenaddress=0.0.0.0
netsh interface portproxy add v4tov4 listenport=12222 listenaddress=0.0.0.0 connectport=22 connectaddress={{你的新IP}}
步驟4:設定Windows防火牆
你還需要在Windows防火牆中設定一個規則,允許來自12222
端口的連接。你可以使用以下的PowerShell命令來完成這個設定:
New-NetFirewallRule -DisplayName "WSL SSH" -Direction Inbound -LocalPort 12222 -Protocol TCP -Action Allow
步驟5:測試你的設定
現在,可以從另一台電腦嘗試使用SSH連線到你的WSL 2。使用以下命令:
ssh username@your_windows_ip -p 12222
提供連線成功範例圖: