当我尝试将网页加载到终端时,会出现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
请问任何线索?
答案 0 :(得分:48)
问题是:
以下是我修复它的方法:
IPV6禁用
su
并输入以超级用户身份登录cd /etc/modprobe.d/
将目录更改为/etc/modprobe.d/
vi disableipv6.conf
以在那里创建新文件Esc + i
将数据插入文件install ipv6 /bin/true
以避免加载与IPV6相关的模块Esc + :
,然后输入wq
进行保存并退出reboot
以重新启动fedora lsmod | grep ipv6
添加Google DNS服务器
su
并输入以超级用户身份登录cat /etc/resolv.conf
以检查Fedora使用的DNS服务器。这大部分都是您的调制解调器IP地址。8.8.8.8
和8.8.4.4
。但将来这些可能会改变。vi /etc/resolv.conf
以编辑resolv.conf
文件Esc + i
将数据插入文件在文件
中输入以下两行 nameserver 8.8.8.8
nameserver 8.8.4.4
-Type Esc + :
然后wq
进行保存并退出
以下是我的博文: http://codeketchup.blogspot.sg/2014/07/how-to-fix-curl-6-could-not-resolve.html
答案 1 :(得分:6)
也许你有一些非常奇怪和限制性的SELinux规则?
如果没有,请尝试strace -o /tmp/wtf -fF curl -v google.com
并尝试从/tmp/wtf
输出文件中发现正在进行的操作。
答案 2 :(得分:0)
尝试nslookup google.com以确定是否存在DNS问题。 192.168.1.254是您的本地网络地址,看起来您的系统正在将其用作DNS服务器。这是你的网关/调制解调器路由器吗? 当您尝试ping google.com时会发生什么。你可以在互联网网络浏览器上浏览吗?
答案 3 :(得分:0)
我们的Linux服务器遇到了同样的问题,我们刚刚重启了PHP和Apache。 我们认为curls中的一些DNS缓存是错误的,只是重新启动PHP解决了这个问题。
答案 4 :(得分:0)
host pl.archive.ubuntu.com
dig pl.archive.ubuntu.com
,dig @127.0.1.1 pl.archive.ubuntu.com
$ 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
<强>启强>
最后我在curl上使用了strace
,发现它与nscd
deamon有关。
connect(4, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110) = 0
<强>解决方案强>
我重新启动了nscd服务(名称服务缓存守护程序),它帮助解决了这个问题!
systemctl restart nscd.service
答案 5 :(得分:0)
sudo systemctl restart docker
对我来说,事实证明,重新启动docker守护进程可以解决DNS缓存问题。
答案 6 :(得分:-4)
我遇到了同样的问题,除了在Ubuntu VM上。结果我的wifi已断开连接。我一开始没想到要检查,因为我的主机(Windows 10)互联网工作得很好。所以我所要做的就是重新连接互联网。