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

2024-10-17 08:46:00
admin
原创
405
摘要:问题描述:当我尝试将网页加载到终端时出现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:

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

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用