curl: (6) Could not resolve host: google.com; Name or service not known

前端 未结 4 1546
悲&欢浪女
悲&欢浪女 2020-11-29 00:36

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 co

相关标签:
4条回答
  • 2020-11-29 01:03

    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.

    0 讨论(0)
  • 2020-11-29 01:04

    Issues were:

    1. IPV6 enabled
    2. 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

    0 讨论(0)
  • 2020-11-29 01:15

    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
    
    0 讨论(0)
  • 2020-11-29 01:15

    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?

    0 讨论(0)
提交回复
热议问题