无法解析主机:github.com 仅在 Windows bash 中

Ani*_*eta 2 git bash windows-subsystem-for-linux

我已经在我的 win 10 64 位 1903 中安装了 ubuntu 18.04(WSL)。

对于命令git clone https://github.com/facebookresearch/fastText.git

它在git bash(git for windows) 和ubuntu 18.04shell 中运行良好,但在bash(C:\Windows\System32\bash.exe) 中运行良好,错误消息是

$ git clone https://github.com/facebookresearch/fastText.git
Cloning into 'fastText'...
fatal: unable to access 'https://github.com/facebookresearch/fastText.git/': Could not resolve host: github.com
Run Code Online (Sandbox Code Playgroud)

.gitconfig我的电脑中只有两个文件,一个git bash用于ubuntu 18.04外壳,另一个用于外壳。我认为ubuntu 18.04shellbash在某种程度上可能等于但bash肯定有问题。

1

Ger*_*oke 17

  1. 编辑你的wsl.conf
sudo nano /etc/wsl.conf
Run Code Online (Sandbox Code Playgroud)
[network]
generateResolvConf = false
Run Code Online (Sandbox Code Playgroud)
  1. 保存该文件并退出。然后编辑/etc/resolv.conf
sudo nano /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)
  1. 添加/编辑此行
nameserver 1.1.1.1
Run Code Online (Sandbox Code Playgroud)
  1. 然后关闭WSL 控制台。使用 admin 打开 Powershell 并关闭 wsl。
wsl --shutdown
Run Code Online (Sandbox Code Playgroud)
  1. 最后,重启wsl服务
Get-Service LxssManager | Restart-Service
Run Code Online (Sandbox Code Playgroud)

更多信息 - WSL2 - 没有互联网连接。DNS 问题(名称解析暂时失败)

由 P.hunter编辑 1 :

当您使用 VPN 时,您需要将名称服务器设置为与 VPN 提供的相同。

为了那个原因 -

  1. 转至网络状态(在 Windows 上)并单击更改适配器设置。
  2. 找到您的 VPN 适配器,右键单击它并打开属性。
  3. 从下拉列表中找到 IpV4 选项,然后将其打开。
  4. 找到提到的 DNS 并在步骤 3 中使用相同的 DNS。


小智 9

我执行了以下步骤来解决该问题:

  1. 检查互联网连接。
ping stackoverflow.com
Run Code Online (Sandbox Code Playgroud)
  1. 编辑/etc/resolv.conf,就我而言,原因是由于nameserver 172.22.16.1
sudo vim /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)

添加名称服务器以指向谷歌服务器

nameserver 8.8.8.8
nameserver 8.8.4.4
Run Code Online (Sandbox Code Playgroud)

并通过添加 # 向原始名称服务器添加注释

  1. 重复步骤 1 再次交叉检查连接。

希望这可以帮助!


abu*_*lka 7

可能是您的/etc/resolv.conf文件已损坏 - 它发生在我身上!

症状是:

  • WSL 内部/etc/resolv.conf不是纯文本,而是一些二进制垃圾。它应该是纯文本。
  • 您不能例如ping google.comping stackoverflow.com来自 WSL 内部。
  • 您可以从 Windows 主机中的 powershell ping 这些域。Windows git 也可以正常工作。

旁白:有趣的是ping github.com,今天在我所有的机器上都失败了,但这并没有阻止我在浏览器中访问 github 或使用 git - 奇怪。

解决方案是sudo rm /etc/resolv.conf重新启动 WSL - Windows 将为您重新创建该文件,您应该能够从 WSL 中再次 ping 并使用 git。

要重新启动 WSL - 在管理员模式下打开 Powershell 终端并运行以下命令。(取自@germa-vinsmoke 的回答)

wsl --shutdown
Get-Service LxssManager | Restart-Service
Run Code Online (Sandbox Code Playgroud)


Ada*_*phy 5

上述答案都不适合我。但这个Github 线程的答案确实如此。为了方便重新发布:

启动 VSCode 守护进程似乎把事情弄乱了

  1. 将此作为您的/etc/wsl.conf文件
[network]
generateResolvConf = false
Run Code Online (Sandbox Code Playgroud)
  1. 关闭wsl
wsl --shutdown
Run Code Online (Sandbox Code Playgroud)
  1. 启动 wsl 并创建文件:/etc/resolv.conf包含
nameserver 8.8.8.8
Run Code Online (Sandbox Code Playgroud)

PS 如果这个答案没有帮助,Github 线程上的其他答案可能会有帮助!


小智 0

我可以假设您在代理方面遇到问题。

尝试一下:

git config --global --unset http.proxy
git config --global --unset https.proxy
Run Code Online (Sandbox Code Playgroud)

类似问题:#20370294#5377703