WSL2 無法上網;無法解析主機位址

WSL2 無法上網;無法解析主機位址

WSL2 無法連線到 Internet 並找到主機位址。因此,我們無法使用 WSL2 存取任何伺服器,這從一開始就違背了安裝 Linux 的目的。因此,在這篇文章中,我們將討論當WSL2 提示無網路存取並且無法解析主機位址時該怎麼辦。

WSL2 無法上網;無法解析主機位址

修復 WSL2 無法上網的問題;無法解析主機位址

如果 WSL2 無法存取 Internet 並且無法解析主機位址,請按照下面提到的解決方案進行操作。

  1. 檢查您的網路連線和頻寬
  2. 在 Windows 上執行網路和 Internet 疑難排解
  3. 關閉 WSL 並重置網路協議
  4. 檢查主機名稱和主機文件
  5. 檢查resolv.conf文件

讓我們詳細討論它們。

1]檢查您的網路連線和頻寬

首先,我們需要檢查並確保互聯網沒有問題。為此,請使用免費的互聯網速度測試儀之一。如果您發現頻寬較低,請重新啟動路由器,如果不起作用,請聯絡您的 ISP 並要求他們解決問題。

2]在 Windows 上執行網路和 Internet 疑難排解

如何在 Windows 11 中執行“取得網路和 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 命令,它應該可以正常工作。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *