when I try to load a web page to terminal it gives curl: (6) Could not resolve host
error.
I have internet in my PC and trying from my home internet connection. So as I there is no any proxy involve here.
[root@localhost kevin]# curl http://google.com
curl: (6) Could not resolve host: google.com; Name or service not known
clean all
and tried again but no lucky.
But if I use IP instead of the domain name, it works fine.
[root@localhost kevin]# curl http://173.194.46.0
any clue please?
Issues were:
- IPV6 enabled
- Wrong DNS server
Here is how I fixed it:
IPV6 Disabling
- Open Terminal
- Type
su
and enter to log in as the super user
- Enter the root password
- Type
cd /etc/modprobe.d/
to change directory to /etc/modprobe.d/
- Type
vi disableipv6.conf
to create a new file there
- Press
Esc + i
to insert data to file
- Type
install ipv6 /bin/true
on the file to avoid loading IPV6 related modules
- Type
Esc + :
and then wq
for save and exit
- Type
reboot
to restart fedora
- After reboot open terminal and type
lsmod | grep ipv6
- If no result, it means you properly disabled IPV6
Add Google DNS server
- Open Terminal
- Type
su
and enter to log in as the super user
- Enter the root password
- Type
cat /etc/resolv.conf
to check what DNS server your Fedora using. Mostly this will be your Modem IP address.
- Now we have to Find a powerful DNS server. Luckily there is a open DNS server maintain by Google.
- Go to this page and find out what are the "Google Public DNS IP addresses"
- Today those are
8.8.8.8
and 8.8.4.4
. But in future those may change.
- Type
vi /etc/resolv.conf
to edit the resolv.conf
file
- Press
Esc + i
for insert data to file
- Comment all the things in the file by inserting # at the begin of the each line. Do not delete anything because can be useful in future.
Type below two lines in the file
nameserver 8.8.8.8
nameserver 8.8.4.4
-Type Esc + :
and then wq
for save and exit
- Now you are done and everything works fine (Not necessary to restart).
- But every time when you restart the computer your /etc/resolv.conf will be replaced by default. So I'll let you find a way to avoid that.
Here is my blog post about this:
http://codeketchup.blogspot.sg/2014/07/how-to-fix-curl-6-could-not-resolve.html
Perhaps you have some very weird and restrictive SELinux rules in place?
If not, try strace -o /tmp/wtf -fF curl -v google.com
and try to spot from /tmp/wtf
output file what's going on.
Try nslookup google.com to determine if there's a DNS issue.
192.168.1.254 is your local network address and it looks like your system is using it as a DNS server. Is this your gateway/modem router as well?
What happens when you try ping google.com. Can you browse to it on a Internet web browser?
We had the same problem on our Linux Server and we just restarted PHP as well as Apache.
We believe that some DNS cache inside curls was wrong and just restarting PHP solved this.
I have today similar problem. But weirder.
- host - works
host pl.archive.ubuntu.com
- dig - works on default and on all other DNS's
dig pl.archive.ubuntu.com
, dig @127.0.1.1 pl.archive.ubuntu.com
- curl - doesn't work! but for some addresses it does. WEIRD! Same in Ruby, APT and many more.
$ 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
Revelation
Eventually I used strace
on curl and found that it was connection to nscd
deamon.
connect(4, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110) = 0
Solution
I've restarted the nscd service (Name Service Cache Daemon) and it helped to solve this issue!
systemctl restart nscd.service
I had the same problem, except on an Ubuntu VM. Turns out my wifi had disconnected. I didn't think to check at first because my host's (Windows 10) internet had been working just fine. So all I had to do was reconnect the internet.