WSL2 無法上網;無法解析主機位址
WSL2 無法連線到 Internet 並找到主機位址。因此,我們無法使用 WSL2 存取任何伺服器,這從一開始就違背了安裝 Linux 的目的。因此,在這篇文章中,我們將討論當WSL2 提示無網路存取並且無法解析主機位址時該怎麼辦。
修復 WSL2 無法上網的問題;無法解析主機位址
如果 WSL2 無法存取 Internet 並且無法解析主機位址,請按照下面提到的解決方案進行操作。
- 檢查您的網路連線和頻寬
- 在 Windows 上執行網路和 Internet 疑難排解
- 關閉 WSL 並重置網路協議
- 檢查主機名稱和主機文件
- 檢查resolv.conf文件
讓我們詳細討論它們。
1]檢查您的網路連線和頻寬
首先,我們需要檢查並確保互聯網沒有問題。為此,請使用免費的互聯網速度測試儀之一。如果您發現頻寬較低,請重新啟動路由器,如果不起作用,請聯絡您的 ISP 並要求他們解決問題。
2]在 Windows 上執行網路和 Internet 疑難排解
如果您的網路速度不是問題,請繼續從「取得協助」應用程式運行網路和網路疑難排解。它將檢測您的網路有什麼問題,然後為您提供補救措施。網路問題解決後,請繼續嘗試 WSL。現在應該可以了。
3]關閉WSL並重置網路協議
接下來,我們需要關閉適用於 Linux 的 Windows 子系統,然後重設最初可能導致此問題的網路協定。為此,您可以在命令提示字元中一一執行以下命令(以管理員身分)。
wsl --shutdown
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
完成後,檢查問題是否已解決。
4]檢查主機名稱和主機文件
我們需要確保您的電腦的條目與本機網域一起在主機檔案中提及。但首先,我們需要檢查機器的名稱。為此,請打開“設定”並轉到“系統”>“關於”。
知道電腦的名稱後,打開命令提示字元並轉到 WSL。然後運行以下命令。
nano /etc/hostname
以大寫字母輸入您的機器名稱,特別是我們之前收到的機器名稱。然後刪除除電腦名稱之外的所有資訊。
現在,跑吧。
nano /etc/hosts
主機檔案應該有兩行,與下面提到的類似。
127.0.0.1 localhost.localdomain localhost
127.0.1.1 DESKTOP-SOMETHING
最後,儲存並退出文件。
5]檢查resolv.conf文件
Windows 會自動產生 resolv.conf 文件,但有時會使用錯誤的名稱伺服器。我們需要檢查該檔案並確保名稱伺服器設定為8.8.8.8,這是 Google 公共 DNS 並且可以免費使用。若要執行相同的操作,請依照下列步驟操作。
首先,透過執行以下命令找到該檔案。
sudo nano /etc/resolv.conf
您可能會看到以下條目。
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/resolv.conf
# [network]
# generateResolvConf = false
nameserver xxx.xx.xx
將名稱伺服器值更新為 8.8.8.8 並儲存檔案。然後您就可以連接到網路。為了防止 WSL 在開啟未來的終端機時重設此文件,如果您目前已連接到 Internet,請執行下列命令。
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
最後,檢查問題是否解決。
就是這樣!
如何解決 WSL2 網路問題?
如果您遇到 WSL2 的網際網路問題,首先,檢查您的 Windows 主機是否有正常的網際網路。您可以使用免費的網路速度測試器來做到這一點。如果您的網路沒有問題,請重新啟動電腦和路由器。如果您仍然遇到相同的問題,請查看上述指南。
如何修復U無法解析主機?
如果 /etc/hosts 檔案中的主機名稱未更新或不正確,WSL 可能無法解析主機。若要解決此問題,請更新 /etc/hosts 檔案中存檔伺服器的主機名稱或 FQDN 並儲存變更。更新主機檔案後,再次嘗試使用 sudo 命令,它應該可以正常工作。
發佈留言