Ⅰ WSL2與Windows間的網路互訪
我的WSL2使用的是ubuntu 20.04.2.LTS, Windows是10專業版 Build: 19043.1526。本文只討論應用級別通過網路互相訪問的問題,不涉及文件互訪。
由於多物理網卡,虛擬機網卡等原因,Windows會有多個IP Address,我們需要找出能與WSL2連同的那個。
啟動WSL2,鍵入如下命令:
輸出中nameserver 後面的地址即是我們要找的地址。
如:
172.27.160.1 就是我們要找的Windows的IP Address,後面會以 <win-ip> 引用
啟動WSL2,鍵入如下命令:
輸出舉例:
172.27.170.146 就是我們要找的WSL2的IP Address,後面會以 <wsl-ip> 引用
默認情況下Windows的防火牆會阻止WSL2中應用對Windows的網路訪問(see: Add "allow" rule to Windows firewall for WSL2 network · Issue #4585 · microsoft/WSL (github.com) ),解決辦法是添加一條防火牆規則允許WSL2對Windows的訪問。請以管理員身份打開PowerShell並鍵入以下命令:
輸出舉例:
命令成功執行後,我們會在Windows的防火牆高級設置的入站規則里會看到一條名為 WSL 的新規則:
以上配置好後,我們就可以在WSL2中通過 <win-ip> 和 <埠> 訪問Windows中的應用程序。
我們可以在Windows中通過 <wsl-ip> 和 <埠> 訪問WSL2中的應用程序。
Ⅱ WSL2 X-Server 網路問題
從WSL1升級WSL2之後,X-Server 出現問題,Ubuntu圖形界面彈出不來。DISPLAY沒起作用。
Ubuntu環境裡面可以聯通外網,ping 和 apt 都沒有問題,ping區域網內其他主機也沒有問題。
Ubuntu環境ping主機IP無法ping通。
升級WSL2 之後, 開啟了虛擬化,有虛擬網卡。 看起來是虛擬機環境的網卡被block了,而且單單無法ping通主機。
直接放開WSL虛擬網卡的訪問:
New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
https://lengthmin.me/posts/wsl2-network-tricks/
https://github.com/microsoft/WSL/issues/4585