GNU/Linux >> Znalost Linux >  >> Linux

curl:(6) Nelze vyřešit hostitel:google.com; Jméno nebo služba nejsou známy

Možná máte nějaká velmi zvláštní a omezující pravidla SELinux?

Pokud ne, zkuste strace -o /tmp/wtf -fF curl -v google.com a pokuste se najít od /tmp/wtf výstupní soubor, co se děje.


Problémy byly:

  1. Povoleno IPV6
  2. Chybný server DNS

Zde je návod, jak jsem to opravil:

Deaktivace IPV6

  • Otevřete terminál
  • Zadejte su a zadejte pro přihlášení jako super uživatel
  • Zadejte heslo uživatele root
  • Zadejte cd /etc/modprobe.d/ pro změnu adresáře na /etc/modprobe.d/
  • Zadejte vi disableipv6.conf a vytvořit tam nový soubor
  • Stiskněte Esc + i pro vložení dat do souboru
  • Zadejte install ipv6 /bin/true v souboru, abyste se vyhnuli načítání modulů souvisejících s IPV6
  • Zadejte Esc + : a poté wq pro uložení a ukončení
  • Zadejte reboot restartujte fedoru
  • Po restartu otevřete terminál a zadejte lsmod | grep ipv6
  • Pokud žádný výsledek, znamená to, že jste IPV6 správně zakázali

Přidat server DNS Google

  • Otevřete terminál
  • Zadejte su a zadejte pro přihlášení jako super uživatel
  • Zadejte heslo uživatele root
  • Zadejte cat /etc/resolv.conf zkontrolujte, jaký DNS server vaše Fedora používá. Většinou to bude IP adresa vašeho modemu.
  • Nyní musíme najít výkonný server DNS. Naštěstí existuje otevřený server DNS spravovaný společností Google.
  • Přejděte na tuto stránku a zjistěte, co jsou „veřejné IP adresy Google DNS“
  • Dnes je to 8.8.8.8 a 8.8.4.4 . Ale v budoucnu se to může změnit.
  • Zadejte vi /etc/resolv.conf upravit resolv.conf soubor
  • Stiskněte Esc + i pro vložení dat do souboru
  • Okomentujte všechny položky v souboru vložením znaku # na začátek každého řádku. Nic nemažte, protože to může být užitečné v budoucnu.
  • Napište pod dva řádky v souboru

    jmenný server 8.8.8.8
    jmenný server 8.8.4.4

    -Zadejte Esc + : a poté wq pro uložení a ukončení

  • Nyní jste hotovi a vše funguje dobře (není nutné restartovat).
  • Ale pokaždé, když restartujete počítač, bude soubor /etc/resolv.conf ve výchozím nastavení nahrazen. Nechám vás tedy najít způsob, jak se tomu vyhnout.

Zde je můj příspěvek na blogu:http://codeketchup.blogspot.sg/2014/07/how-to-fix-curl-6-could-not-resolve.html


Zkuste nslookup google.com a zjistěte, zda došlo k problému s DNS. 192.168.1.254 je vaše místní síťová adresa a zdá se, že ji váš systém používá jako server DNS. Je to také vaše brána/modemový router? Co se stane, když se pokusíte pingnout na google.com. Můžete jej procházet v internetovém webovém prohlížeči?


Mám dnes podobný problém. Ale divnější.

  • hostitel – funguje host pl.archive.ubuntu.com
  • dig – funguje ve výchozím nastavení a na všech ostatních DNS dig pl.archive.ubuntu.com , dig @127.0.1.1 pl.archive.ubuntu.com
  • kroucení – nefunguje! ale u některých adres ano. PODIVNÝ! Totéž v Ruby, APT a mnoha dalších.
$ 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

Zjevení

Nakonec jsem použil strace na curl a zjistil, že se jedná o připojení k nscd démon.

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

Řešení

Restartoval jsem službu nscd (Name Service Cache Daemon) a pomohlo to vyřešit tento problém!

systemctl restart nscd.service

Linux
  1. Zahrnout název domény nebo ne do /etc/hosts?

  2. Chyba Odstraňování problémů s neplatným názvem hostitele

  3. Příkaz „ntpq -pn“ se vrátí s chybou „Název nebo služba není známa“

  1. Problém s připojením EFS „Nepodařilo se vyřešit server:Název nebo služba není známa“

  2. systemctl:příkaz nenalezen

  3. Služba MongoDB ve Fedoře neběží

  1. git rebase nemohl spustit editor

  2. ssh:Nelze vyřešit název hostitele [název hostitele]:zadaný název uzlu ani název_serveru nebo neznámý

  3. @reboot nefunguje v CRON