m_b*_*ash 10 networking resolv.conf windows-subsystem-for-linux
在 WSL 上运行 Ubuntu 并尝试推送到 github 并使用 pip 下载新的 python 模块,我收到此错误。
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f9d654fe0b8>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': /simple/tensorflow/
Run Code Online (Sandbox Code Playgroud)
我查看了 resolv.conf 文件,可能它已损坏,因为它只给出了几行@@@。任何人有任何想法如何解决这个问题?
当我跑 l
ls -al /etc/resolv.conf
-rw-r--r-- 1 root root 261 Nov 28 12:54 /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)
更新:
我设法解决了这个问题。需要编辑文件并添加如下一行:
nameserver 8.8.8.8
Run Code Online (Sandbox Code Playgroud)
mat*_*epa 58
在 WSL2 内,创建或附加文件:/etc/wsl.conf
将以下行放入文件中,以确保您的 DNS 更改不会被破坏。(这将替换 wsl.conf 中可能存在的所有内容。您也可以在此处使用编辑器。)
sudo tee /etc/wsl.conf << EOF
[network]
generateResolvConf = false
EOF
Run Code Online (Sandbox Code Playgroud)
cmd 在窗口中(!!),运行wsl --shutdown
启动 WSL2
在 WSL2 中运行以下命令(行search是可选的)
sudo rm -rf /etc/resolv.conf
sudo tee /etc/resolv.conf << EOF
search yourbase.domain.local
nameserver 8.8.8.8
nameserver 1.1.1.1
EOF
Run Code Online (Sandbox Code Playgroud)
小智 12
我也有同样的问题。它似乎也与 VPN 有关。我发现,只有在系统重新启动后启动 WSL-Ubuntu 之前首次连接 VPN 时,DNS 查找才会失败。首先启动 WSL-Ubuntu,然后连接 VPN 似乎可以正常工作。
小智 6
对我来说这是一个简单的修复。来自 powershell:
wsl --shutdown
Run Code Online (Sandbox Code Playgroud)
然后重启wsl就成功了。是的,我知道这个解决方案太简单了,如果您试图避免重置为 WSL,可能对您不利。但如果你寻找简单的东西,也许值得尝试
小智 3
我有同样的错误。Ping IP 地址有效,但没有 DNS 解析。WSL 之外一切都很好。对我来说,这个问题是由 OpenVPN 引起的,当我断开与工作场所的 VPN 的连接时,错误就消失了。