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:
- Povoleno IPV6
- 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
a8.8.4.4
. Ale v budoucnu se to může změnit. - Zadejte
vi /etc/resolv.conf
upravitresolv.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