curl: (6) Could not resolve host: google.com; Name or service not known
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 thenwq
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
and8.8.4.4
. But in future those may change. - Type
vi /etc/resolv.conf
to edit theresolv.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 thenwq
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
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 0curl: (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