GNU/Linux >> Linux Esercitazione >  >> Linux

curl:(6) Impossibile risolvere host:google.com; Nome o servizio non noto

Forse hai in atto alcune regole SELinux molto strane e restrittive?

In caso contrario, prova strace -o /tmp/wtf -fF curl -v google.com e prova a individuare da /tmp/wtf file di output cosa sta succedendo.


I problemi erano:

  1. IPV6 abilitato
  2. Server DNS errato

Ecco come l'ho risolto:

Disattivazione IPV6

  • Apri terminale
  • Digita su e accedi per accedere come superutente
  • Inserisci la password di root
  • Digita cd /etc/modprobe.d/ per cambiare la directory in /etc/modprobe.d/
  • Digita vi disableipv6.conf per creare un nuovo file lì
  • Premi Esc + i per inserire i dati nel file
  • Digita install ipv6 /bin/true sul file per evitare di caricare i moduli relativi a IPV6
  • Digita Esc + : e poi wq per salvare ed uscire
  • Digita reboot per riavviare fedora
  • Dopo il riavvio, apri il terminale e digita lsmod | grep ipv6
  • Se non ottieni risultati, significa che hai disabilitato correttamente IPV6

Aggiungi server DNS di Google

  • Apri terminale
  • Digita su e accedi per accedere come superutente
  • Inserisci la password di root
  • Digita cat /etc/resolv.conf per verificare quale server DNS utilizza la tua Fedora. Principalmente questo sarà l'indirizzo IP del tuo modem.
  • Ora dobbiamo trovare un potente server DNS. Fortunatamente esiste un server DNS aperto gestito da Google.
  • Vai a questa pagina e scopri quali sono gli "indirizzi IP di Google Public DNS"
  • Oggi sono 8.8.8.8 e 8.8.4.4 . Ma in futuro potrebbero cambiare.
  • Digita vi /etc/resolv.conf per modificare il resolv.conf file
  • Premi Esc + i per inserire i dati nel file
  • Commenta tutte le cose nel file inserendo # all'inizio di ogni riga. Non cancellare nulla perché può essere utile in futuro.
  • Digita sotto due righe nel file

    server dei nomi 8.8.8.8
    server dei nomi 8.8.4.4

    -Digita Esc + : e poi wq per salvare ed uscire

  • Ora hai finito e tutto funziona correttamente (non è necessario riavviare).
  • Ma ogni volta che riavvii il computer, il tuo /etc/resolv.conf verrà sostituito per impostazione predefinita. Quindi ti lascerò trovare un modo per evitarlo.

Ecco il mio post sul blog su questo:http://codeketchup.blogspot.sg/2014/07/how-to-fix-curl-6-could-not-resolve.html


Prova nslookup google.com per determinare se c'è un problema DNS.192.168.1.254 è il tuo indirizzo di rete locale e sembra che il tuo sistema lo stia utilizzando come server DNS. È questo anche il tuo gateway/modem router? Cosa succede quando provi a eseguire il ping su google.com. Puoi accedervi su un browser Web Internet?


Oggi ho un problema simile. Ma più strano.

  • host - funziona host pl.archive.ubuntu.com
  • dig - funziona su default e su tutti gli altri DNS dig pl.archive.ubuntu.com , dig @127.0.1.1 pl.archive.ubuntu.com
  • curl - non funziona! ma per alcuni indirizzi lo fa. STRANO! Lo stesso in Ruby, APT e molti altri.
$ 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

Rivelazione

Alla fine ho usato strace su curl e ho scoperto che si trattava di una connessione a nscd demone.

connect(4, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110) = 0

Soluzione

Ho riavviato il servizio nscd (Name Service Cache Daemon) e ha aiutato a risolvere questo problema!

systemctl restart nscd.service

Linux
  1. Servizio di arricciatura

  2. Servizio di arricciatura

  3. Includere il nome di dominio o meno in /etc/hosts?

  4. Risolvi l'errore relativo al nome host fornito non valido

  5. servizio:comando non trovato

systemctl:comando non trovato

Servizio MongoDB non in esecuzione in Fedora

Codice Python per verificare se il servizio è in esecuzione o meno.?

SCardEstablishContext:servizio non disponibile

wkhtmltopdf - QXcbConnection:Impossibile connettersi al display

Quando exim4 invia HELO/EHLO, come posso configurare il nome host che invia?