curl:(6)无法解析主机:google.com;名称或服务未知

新手上路,请多包涵

当我尝试将网页加载到终端时,它给出了 curl: (6) Could not resolve host 错误。

我的电脑上有互联网,并尝试通过我的家庭互联网连接。所以我这里没有任何代理。

 [root@localhost kevin]# curl http://google.com
curl: (6) Could not resolve host: google.com; Name or service not known

clean all 又试了一次,但没有运气。

但是,如果我使用 IP 而不是域名,它就可以正常工作。

[root@localhost kevin]# curl http://173.194.46.0

请问有什么线索吗?

原文由 Nayana Adassuriya 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.7k
2 个回答

问题是:

  1. 启用 IPV6
  2. 错误的 DNS 服务器

这是我修复它的方法:

IPV6 禁用

  • 打开终端
  • 键入 su 并输入以超级用户身份登录
  • 输入root密码
  • 键入 cd /etc/modprobe.d/ 将目录更改为 /etc/modprobe.d/
  • vi disableipv6.conf 在那里创建一个新文件
  • Esc + i 将数据插入文件
  • 在文件上键入 install ipv6 /bin/true 以避免加载IPV6相关模块
  • Esc + : 然后 wq 保存并退出
  • reboot 重启 Fedora
  • 重启后打开终端并输入 lsmod | grep ipv6
  • 如果没有结果,则表示您正确禁用了 IPV6

添加谷歌 DNS 服务器

  • 打开终端
  • 键入 su 并输入以超级用户身份登录
  • 输入root密码
  • cat /etc/resolv.conf 检查 Fedora 使用的 DNS 服务器。大多数情况下,这将是您的调制解调器 IP 地址。
  • 现在我们必须找到一个强大的 DNS 服务器。幸运的是,Google 维护了一个开放的 DNS 服务器。
  • 转到 此页面 并找出什么是“Google 公共 DNS IP 地址”
  • 今天是 8.8.8.88.8.4.4 。但在未来,这些可能会改变。
  • 键入 vi /etc/resolv.conf 编辑 resolv.conf 文件
  • Esc + i 将数据插入文件
  • 通过在每行的开头插入 # 来注释文件中的所有内容。不要删除任何内容,因为将来会有用。
  • 在文件中输入以下两行

名称服务器 8.8.8.8

名称服务器 8.8.4.4

- Esc + : 然后 wq 保存并退出

  • 现在您已完成,一切正常(无需重新启动)。
  • 但是每次重新启动计算机时,您的 /etc/resolv.conf 都会被默认替换。所以我会让你找到一种方法来避免这种情况。

这是我的博客文章: http ://codeketchup.blogspot.sg/2014/07/how-to-fix-curl-6-could-not-resolve.html

原文由 Nayana Adassuriya 发布,翻译遵循 CC BY-SA 3.0 许可协议

也许你有一些非常奇怪和限制性的 SELinux 规则?

如果没有,请尝试 strace -o /tmp/wtf -fF curl -v google.com 并尝试从 /tmp/wtf 输出文件中发现发生了什么。

原文由 Sathish 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题