GNU/Linux >> LINUX-Kenntnisse >  >> Linux

curl:(6) Host konnte nicht aufgelöst werden:google.com; Name oder Dienst nicht bekannt

Vielleicht haben Sie einige sehr seltsame und restriktive SELinux-Regeln in Kraft?

Wenn nicht, versuchen Sie es mit strace -o /tmp/wtf -fF curl -v google.com und versuchen Sie, von /tmp/wtf aus zu erkennen Ausgabedatei was los ist.


Probleme waren:

  1. IPV6 aktiviert
  2. Falscher DNS-Server

So habe ich es behoben:

IPV6-Deaktivierung

  • Terminal öffnen
  • Geben Sie su ein und geben Sie ein, um sich als Superuser anzumelden
  • Geben Sie das Root-Passwort ein
  • Geben Sie cd /etc/modprobe.d/ ein um das Verzeichnis auf /etc/modprobe.d/ zu ändern
  • Geben Sie vi disableipv6.conf ein um dort eine neue Datei zu erstellen
  • Drücken Sie Esc + i um Daten in eine Datei einzufügen
  • Geben Sie install ipv6 /bin/true ein in der Datei, um das Laden von IPV6-bezogenen Modulen zu vermeiden
  • Geben Sie Esc + : ein und dann wq zum Speichern und Beenden
  • Geben Sie reboot ein um Fedora neu zu starten
  • Öffnen Sie nach dem Neustart das Terminal und geben Sie lsmod | grep ipv6 ein
  • Wenn kein Ergebnis angezeigt wird, bedeutet dies, dass Sie IPV6 ordnungsgemäß deaktiviert haben

Google DNS-Server hinzufügen

  • Terminal öffnen
  • Geben Sie su ein und geben Sie ein, um sich als Superuser anzumelden
  • Geben Sie das Root-Passwort ein
  • Geben Sie cat /etc/resolv.conf ein um zu überprüfen, welchen DNS-Server Ihr Fedora verwendet. Meistens wird dies Ihre Modem-IP-Adresse sein.
  • Jetzt müssen wir einen leistungsfähigen DNS-Server finden. Glücklicherweise gibt es einen offenen DNS-Server, der von Google verwaltet wird.
  • Gehen Sie zu dieser Seite und finden Sie heraus, was die "Google Public DNS IP-Adressen" sind
  • Heute sind das 8.8.8.8 und 8.8.4.4 . Aber in Zukunft können sich diese ändern.
  • Geben Sie vi /etc/resolv.conf ein um den resolv.conf zu bearbeiten Datei
  • Drücken Sie Esc + i zum Einfügen von Daten in eine Datei
  • Kommentieren Sie alle Dinge in der Datei, indem Sie # am Anfang jeder Zeile einfügen. Löschen Sie nichts, da dies in Zukunft nützlich sein kann.
  • Geben Sie unten zwei Zeilen in die Datei ein

    Nameserver 8.8.8.8
    Nameserver 8.8.4.4

    - Geben Sie Esc + : ein und dann wq zum Speichern und Beenden

  • Jetzt sind Sie fertig und alles funktioniert einwandfrei (kein Neustart erforderlich).
  • Aber jedes Mal, wenn Sie den Computer neu starten, wird Ihre /etc/resolv.conf standardmäßig ersetzt. Also lasse ich dich einen Weg finden, das zu vermeiden.

Hier ist mein Blogbeitrag dazu:http://codeketchup.blogspot.sg/2014/07/how-to-fix-curl-6-could-not-resolve.html


Probieren Sie nslookup google.com aus, um festzustellen, ob ein DNS-Problem vorliegt. 192.168.1.254 ist Ihre lokale Netzwerkadresse und es sieht so aus, als würde Ihr System sie als DNS-Server verwenden. Ist dies auch Ihr Gateway/Modemrouter? Was passiert, wenn Sie versuchen, google.com zu pingen? Können Sie in einem Internet-Webbrowser darauf zugreifen?


Ich habe heute ein ähnliches Problem. Aber seltsamer.

  • host - funktioniert host pl.archive.ubuntu.com
  • dig - funktioniert standardmäßig und auf allen anderen DNS's dig pl.archive.ubuntu.com , dig @127.0.1.1 pl.archive.ubuntu.com
  • Curl - geht nicht! aber für einige Adressen tut es. SELTSAM! Dasselbe in Ruby, APT und vielen mehr.
$ 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

Offenbarung

Schließlich habe ich strace verwendet auf curl und festgestellt, dass es eine Verbindung zu nscd war Dämon.

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

Lösung

Ich habe den nscd-Dienst (Name Service Cache Daemon) neu gestartet und er hat geholfen, dieses Problem zu lösen!

systemctl restart nscd.service

Linux
  1. Beheben Sie den Fehler „Der angegebene Hostname ist ungültig“.

  2. MongoDB-Dienst läuft nicht in Fedora

  3. git rebase konnte Editor nicht ausführen

  4. ssh:Hostname [Hostname] konnte nicht aufgelöst werden:Knotenname oder Servername angegeben oder nicht bekannt

  5. @reboot funktioniert nicht in CRON

EFS-Bereitstellungsproblem „Fehler beim Auflösen des Servers:Name oder Dienst nicht bekannt“

systemctl:Befehl nicht gefunden

Dienst:Befehl nicht gefunden

chkconfig:Befehl nicht gefunden

Python-Code, um zu überprüfen, ob der Dienst ausgeführt wird oder nicht.?

Wie konfiguriere ich, welchen Hostnamen es sendet, wenn exim4 HELO/EHLO sendet?