您好 XieJie,
當 Windows 主機可以正常連線至網際網路,但 WSL2 Linux 發行版本卻無法連線時,問題通常與以下四個方面有關:DNS 名稱解析、WSL2 使用的 Hyper-V 虛擬網路層、VPN/Proxy 代理伺服器軟體,或是 Windows 防火牆及其他安全性軟體對虛擬網路介面卡的干擾。
我建議您首先確認 WSL2 是否能直接透過 IP 位址連線至外部網路,但無法解析網域名稱。如果可以透過 IP 位址正常連線,卻無法使用網域名稱存取網站,通常表示問題可能出在 DNS 設定,而不是整體網路連線發生故障。
此外,建議您檢查 Windows 主機上的 vEthernet (WSL) 虛擬網路介面卡狀態,並確認其網路設定是否正確。如果問題是最近才開始發生的,可以回顧近期是否安裝了 VPN 用戶端、更新了安全性軟體、修改了防火牆原則,或安裝了 Windows 更新,藉此找出可能導致問題的變更。
另一個值得嘗試的方法是重新啟動 WSL 網路環境,並確認 Linux 發行版本是否能從 Windows 建立的虛擬網路中取得有效的 IP 位址。
如果您使用的是企業 VPN,建議特別留意分割通道(Split Tunneling)及路由原則的設定。某些 VPN 用戶端可能會在非預期的情況下,封鎖來自 WSL2 虛擬網路的流量,導致 Windows 主機可以正常上網,但 WSL2 無法存取外部網路。
您也可以同時檢查 Windows 事件檢視器(Event Viewer)中的相關事件記錄,以及受影響 Linux 發行版本內部的網路設定,進一步判斷封包傳輸失敗究竟是由路由、DNS 名稱解析,還是網路流量過濾所造成。
如果同一台 Windows 主機上有其他可以正常連線的 WSL2 執行個體,也建議將正常與異常的執行個體進行設定比較,這通常有助於快速找出兩者之間的差異,並縮小問題的排查範圍。
希望以上建議能為您提供一些實用的排查方向。如果您覺得這個回答對您有所幫助,歡迎點選 「接受答案」(Accept Answer),讓我知道您的問題已獲得解答。
Jason