
我全新安裝了 Windows 11,並在 wsl2 內安裝了 ubuntu 20.04。
當我嘗試執行更新sudo apt update
甚至ping google.com
我得到
暫時無法解析“archive.ubuntu.com”
和
名稱解析暫時失敗
分別出現錯誤。
我試過了:
使用“允許應用程式通過防火牆”並選擇允許 wsl 通過 Windows firefall
C:\Windows\System32\wsl.exe
在防火牆中新增連接埠 3390 的入站規則
將網路設定檔設為「私有」(儘管如果有辦法讓 wsl 正常運作,我更願意將其保持公開)
New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
從谷歌搜尋運行
編輯:此時我已經嘗試了所有谷歌結果,但仍然沒有解決方案。 r/windows11 不會讓我發帖,除非是星期一(愚蠢)。也嘗試在 wsl 上重新安裝 ubuntu,但無濟於事。
答案1
造成這一問題的原因不只一個。
文章 WSL2 網路問題與 Win 10 快速啟動 建議在 Windows 中停用快速啟動:
其他
解釋
問題是切換網路(如在工作和家庭之間)使 WSL 感到困惑。解決方案是運行.bat
包含以下內容的檔案:
wsl --shutdown
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
netsh winsock reset
shutdown /r
還有一個
解釋
是 Windows 自動產生一個resolv.conf
帶有錯誤名稱伺服器的檔案。
為了防止這種情況發生,請執行以下命令:
sudo rm /etc/resolv.conf
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
sudo bash -c 'echo "[network]" > /etc/wsl.conf'
sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf'
sudo chattr +i /etc/resolv.conf
答案2
只是想提醒大家,Win11似乎對管理員訪問很嚴格,甚至喜歡將.bat檔案放在C::
話雖如此,只要我以管理員存取權限執行所有操作,將 etc/resolv.conf 重寫為 8.8.8.8 就可以工作,包括從 Win11 工作列以管理員身份啟動我的 WSL2 Kali CLI。
答案3
將此設定新增至您的.wslconfig
檔案(在 Windows 主目錄中)應該會在 WSL 虛擬機器中啟用網路支援:
[wsl2]
networkingMode=mirrored
變更後應停止 WSL.wslconfig
以使變更生效:wsl --shutdown
從 Windows 命令 shell 中使用。這是一個相對較新的功能(2023 年 9 月更新),需要建置 22H2(我僅在 Windows 11 上測試過它,但可能適用於最新的 Windows 10)。詳細資訊和其他相關配置設定請參閱此處:
https://learn.microsoft.com/en-us/windows/wsl/networking。
要使用最新的 WSL2 子系統,wsl --update
可能需要運作。
在舊版的 Windows 上,我能夠可靠使用並且在 Windows 運行 VPN 時也能工作的唯一解決方案是使用「wsl-vpnkit」(https://github.com/sakai135/wsl-vpnkit)。