linux - resuelve - curl:(6) No se pudo resolver el host: google.com; Nombre o servicio desconocido
no resuelve por nombre y sí por dirección ip linux (6)
cuando trato de cargar una página web a la terminal, me da un curl: (6) Could not resolve host
error del curl: (6) Could not resolve host
.
Tengo Internet en mi PC y lo intento desde la conexión a Internet de mi casa. Entonces, como yo no hay ningún proxy involucrado aquí.
[root@localhost kevin]# curl http://google.com
curl: (6) Could not resolve host: google.com; Name or service not known
clean all
e intentarlo de nuevo, pero sin suerte.
Pero si uso IP en lugar del nombre de dominio, funciona bien.
[root@localhost kevin]# curl http://173.194.46.0
alguna pista, por favor?
Los problemas fueron:
- IPV6 habilitado
- Servidor DNS incorrecto
Así es como lo arreglé:
Desactivación de IPV6
- Terminal abierto
- Escriba
su
y enter para iniciar sesión como superusuario - Ingrese la contraseña de root
- Escriba
cd /etc/modprobe.d/
para cambiar el directorio a/etc/modprobe.d/
- Escriba
vi disableipv6.conf
para crear un nuevo archivo allí - Presiona
Esc + i
para insertar datos en el archivo - Escriba
install ipv6 /bin/true
en el archivo para evitar cargar módulos relacionados con IPV6 - Escriba
Esc + :
y luegowq
para guardar y salir - Escriba
reboot
para reiniciar fedora - Después de reiniciar, abra el terminal y escriba
lsmod | grep ipv6
lsmod | grep ipv6
- Si no hay resultados, significa que ha inhabilitado IPV6 correctamente
Agregar servidor DNS de Google
- Terminal abierto
- Escriba
su
y enter para iniciar sesión como superusuario - Ingrese la contraseña de root
- Escriba
cat /etc/resolv.conf
para verificar qué servidor DNS utiliza su Fedora. En su mayoría, esta será su dirección IP del módem. - Ahora tenemos que encontrar un poderoso servidor DNS. Afortunadamente, hay un servidor DNS abierto que mantiene Google.
- Vaya a esta página y descubra cuáles son las "direcciones IP DNS públicas de Google".
- Hoy esos son
8.8.8.8
y8.8.4.4
. Pero en el futuro, eso puede cambiar. - Escriba
vi /etc/resolv.conf
para editar el archivoresolv.conf
- Presione
Esc + i
para insertar datos en el archivo - Comenta todas las cosas en el archivo insertando # al comienzo de cada línea. No borres nada porque puede ser útil en el futuro.
Escriba debajo de dos líneas en el archivo
nameserver 8.8.8.8
servidor de nombres 8.8.4.4-Type
Esc + :
y luegowq
para guardar y salir- Ahora ha terminado y todo funciona bien (no es necesario reiniciar).
- Pero cada vez que reinicia la computadora, su /etc/resolv.conf será reemplazado por defecto. Así que te dejaré encontrar una manera de evitar eso.
Aquí está mi blog sobre esto: http://codeketchup.blogspot.sg/2014/07/how-to-fix-curl-6-could-not-resolve.html
Pruebe nslookup google.com para determinar si hay un problema de DNS. 192.168.1.254 es su dirección de red local y parece que su sistema lo está utilizando como un servidor DNS. ¿Es este su enrutador gateway / modem también? ¿Qué sucede cuando intentas ping google.com? ¿Puedes buscarlo en un navegador web de Internet?
Quizás tengas algunas reglas SELinux muy raras y restrictivas en su lugar?
De lo contrario, pruebe strace -o /tmp/wtf -fF curl -v google.com
y trate de detectar desde el archivo de salida /tmp/wtf
lo que está sucediendo.
Tengo hoy un problema similar. Pero más raro.
- host -
host pl.archive.ubuntu.com
- dig - funciona en forma predeterminada y en todos los demás DNS
dig pl.archive.ubuntu.com
,dig @127.0.1.1 pl.archive.ubuntu.com
- curl - no funciona! pero para algunas direcciones lo hace. ¡EXTRAÑO! Lo mismo en Ruby, APT y muchos más.
$ 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
Revelación
Eventualmente utilicé strace
en curl y descubrí que estaba relacionado con nscd
deamon.
connect(4, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110) = 0
Solución
He reiniciado el servicio nscd (Name Service Cache Daemon) y me ayudó a resolver este problema.
systemctl restart nscd.service
Tuve el mismo problema, excepto en una máquina virtual de Ubuntu. Resulta que mi wifi se desconectó. Al principio no pensé en verificar porque el internet de mi anfitrión (Windows 10) había estado funcionando bien. Así que todo lo que tenía que hacer era volver a conectar Internet.
Tuvimos el mismo problema en nuestro servidor Linux y simplemente reiniciamos PHP y Apache. Creemos que parte de la caché de DNS dentro de los rizos estaba mal y solo reiniciar PHP resolvió esto.