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:
- IPV6 aktiviert
- 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 dannwq
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
und8.8.4.4
. Aber in Zukunft können sich diese ändern. - Geben Sie
vi /etc/resolv.conf
ein um denresolv.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 dannwq
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