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

2024-10-17 08:46:00
admin
原创
265
摘要:问题描述:当我尝试将网页加载到终端时出现curl: (6) Could not resolve host错误。我的电脑上有互联网,并且尝试使用家庭互联网连接。因此,这里不需要任何代理。[root@localhost kevin]# curl http://google.com curl: (6) Could ...

问题描述:

当我尝试将网页加载到终端时出现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

请问有什么线索吗?


解决方案 1:

问题如下:

  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

添加 Google 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

解决方案 2:

无需像答案所建议的那样禁用 IPv6。curl 失败的原因只是因为缺少 DNS 解析。

对此有一个简单的解决方案。

如果你关心里面的内容,/etc/resolv.conf那么请将其附加:

echo 'nameserver 1.1.1.1' | sudo tee -a /etc/resolv.conf >/dev/null

我通常不关心,只是替换文件的内容:

echo 'nameserver 1.1.1.1' | sudo tee /etc/resolv.conf >/dev/null

解决方案 3:

也许您已经制定了一些非常奇怪且限制性的 SELinux 规则?

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

解决方案 4:

我今天也遇到了类似的问题。但更奇怪。

  • 主持人 - 作品host pl.archive.ubuntu.com

  • dig - 适用于默认 DNS 和所有其他 DNS dig pl.archive.ubuntu.comdig @127.0.1.1 pl.archive.ubuntu.com

  • curl - 不起作用!但对于某些地址,它起作用。很奇怪!Ruby、APT 和许多其他程序也一样。

$ curl -v http://google.com/
*   Trying 172.217.18.78...
* Connected to google.com (172.217.18.78) port 80 (#0)
> GET / HTTP/1.1
> Host: google.com
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 302 Found
< Cache-Control: private
< Content-Type: text/html; charset=UTF-8
< Referrer-Policy: no-referrer
< Location: http://www.google.pl/?gfe_rd=cr&ei=pt9UWfqXL4uBX_W5n8gB
< Content-Length: 256
< Date: Thu, 29 Jun 2017 11:08:22 GMT
<
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.pl/?gfe_rd=cr&ei=pt9UWfqXL4uBX_W5n8gB">here</A>.
</BODY></HTML>
* Connection #0 to host google.com left intact

$ curl -v http://pl.archive.ubuntu.com/
* Could not resolve host: pl.archive.ubuntu.com
* Closing connection 0
curl: (6) Could not resolve host: pl.archive.ubuntu.com

启示

最终我使用了stracecurl 并发现它是与nscd守护进程的连接。

connect(4, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110) = 0

解决方案

我已经重新启动了 nscd 服务(名称服务缓存守护进程),它有助于解决这个问题!

systemctl restart nscd.service

解决方案 5:

尝试 nslookup google.com 来确定是否存在 DNS 问题。192.168.1.254 是您的本地网络地址,看起来您的系统正在将其用作 DNS 服务器。这也是您的网关/调制解调器路由器吗?当您尝试 ping google.com 时会发生什么。您可以在 Internet Web 浏览器上浏览它吗?

解决方案 6:

可能是防火墙问题。

尝试:

ufw allow out 53
reboot

解决方案 7:

在我们的例子中,命令是通过邮件/Skype传递的,需要执行的人复制了一个额外的空格

一个小时后我们发现了多余的空间,删除它就可以了。

解决方案 8:

我遇到了 IPV6 问题,它突然出现在 wordpress 管理员中,导致 curl 无法连接到 wordpress.org 等,

发生意外错误。WordPress.org 可能存在问题

并且

安装失败:下载失败。cURL 错误 28:10005 毫秒后解析超时

我最终通过在 mu-plugins 中添加以下内容作为 php 文件来进行排序:

add_action( 'http_api_curl', function( $curl_handle ) { curl_setopt( $curl_handle, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );});

并且在 php 中直接使用 curl 时也可以通过在选项数组中使用以下选项:

curl_setopt_array($curl, array(CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4));

操作系统是 IBM i (OS400/i5OS) v7.2,运行在 Power 6 上,php 版本是 8.1.10。有趣的是,IPV6 在机器上没有激活。

解决方案 9:

我在 MacOS 上的情况很简单:我关闭了正在使用的 iTerm 窗口并打开了一个新的窗口。

由于我在摆弄 DNS 时遇到了与 OP 相同的错误,因此这很可能是 CURL 缓存 DNS 响应的问题。

解决方案 10:

就我而言,问题出在静态路由表中。如果之前添加了静态路由,则必须删除

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1129  
  IPD(Integrated Product Development,集成产品开发)流程是一种广泛应用于高科技和制造业的产品开发方法论。它通过跨职能团队的紧密协作,将产品开发周期缩短,同时提高产品质量和市场成功率。在IPD流程中,CDCP(Concept Decision Checkpoint,概念决策检查点)是一个关...
IPD培训课程   87  
  研发IPD(集成产品开发)流程作为一种系统化的产品开发方法,已经在许多行业中得到广泛应用。它不仅能够提升产品开发的效率和质量,还能够通过优化流程和资源分配,显著提高客户满意度。客户满意度是企业长期成功的关键因素之一,而IPD流程通过其独特的结构和机制,能够确保产品从概念到市场交付的每个环节都围绕客户需求展开。本文将深入...
IPD流程   79  
  IPD(Integrated Product Development,集成产品开发)流程是一种以跨职能团队协作为核心的产品开发方法,旨在通过优化资源分配、提高沟通效率以及减少返工,从而缩短项目周期并提升产品质量。随着企业对产品上市速度的要求越来越高,IPD流程的应用价值愈发凸显。通过整合产品开发过程中的各个环节,IPD...
IPD项目管理咨询   89  
  跨部门沟通是企业运营中不可或缺的一环,尤其在复杂的产品开发过程中,不同部门之间的协作效率直接影响项目的成败。集成产品开发(IPD)作为一种系统化的项目管理方法,旨在通过优化流程和增强团队协作来提升产品开发的效率和质量。然而,跨部门沟通的复杂性往往成为IPD实施中的一大挑战。部门之间的目标差异、信息不对称以及沟通渠道不畅...
IPD是什么意思   82  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用