webページを端末にロードしようとすると、curl: (6) Could not resolve Host
エラーが発生します。
PCにインターネットがあり、自宅のインターネット接続から試しています。だから、私はここに関与するプロキシはありません。
[root@localhost kevin]# curl http://google.com
curl: (6) Could not resolve Host: google.com; Name or service not known
clean all
と再試行しましたが、幸運ではありませんでした。
しかし、ドメイン名の代わりにIPを使用すると、問題なく機能します。
[root@localhost kevin]# curl http://173.194.46.0
手がかりはありますか?
問題は次のとおりです。
修正方法は次のとおりです。
IPV6無効化
su
と入力し、入力してスーパーユーザーとしてログインしますcd /etc/modprobe.d/
と入力して、ディレクトリを/etc/modprobe.d/
に変更しますvi disableipv6.conf
と入力して、そこに新しいファイルを作成しますEsc + i
を押してファイルにデータを挿入しますinstall ipv6 /bin/true
と入力して、IPV6関連モジュールのロードを回避しますEsc + :
と入力し、wq
と入力しますreboot
と入力してFedoraを再起動しますlsmod | grep ipv6
と入力しますGoogle DNSサーバーを追加
su
と入力し、入力してスーパーユーザーとしてログインしますcat /etc/resolv.conf
と入力して、Fedoraが使用しているDNSサーバーを確認します。ほとんどの場合、これはモデムのIPアドレスになります。8.8.8.8
と8.8.4.4
です。しかし、将来それらは変わるかもしれません。vi /etc/resolv.conf
と入力して、resolv.conf
ファイルを編集しますEsc + i
を押しますファイルに2行以下を入力します
ネームサーバー8.8.8.8
ネームサーバー8.8.4.4
-Esc + :
と入力し、保存して終了するにはwq
と入力します
これに関する私のブログ投稿は次のとおりです。 http://codeketchup.blogspot.sg/2014/07/how-to-fix-curl-6-could-not-resolve.html
おそらく、非常に奇妙で制限的なSELinuxルールがいくつかありますか?
そうでない場合は、strace -o /tmp/wtf -fF curl -v google.com
を試して、/tmp/wtf
出力ファイルから何が起こっているのかを見つけてください。
Sudo systemctl restart docker
私にとっては、Dockerデーモンを再起動するとDNSキャッシングの問題が修正されたことがわかりました。
今日も同様の問題があります。しかし、奇妙です。
Host pl.archive.ubuntu.com
Dig pl.archive.ubuntu.com
、Dig @127.0.1.1 pl.archive.ubuntu.com
で動作します$ 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
啓示
最終的に私はcurlでstrace
を使用し、nscd
デーモンへの接続であることがわかりました。
connect(4, {sa_family=AF_LOCAL, Sun_path="/var/run/nscd/socket"}, 110) = 0
ソリューション
Nscdサービス(Name Service Cache Daemon)を再起動しましたが、この問題の解決に役立ちました!
systemctl restart nscd.service
Linuxサーバーでも同じ問題が発生し、PHPとApacheを再起動しました。 curl内のDNSキャッシュの一部が間違っていたため、PHPを再起動するだけでこれを解決できたと考えています。
Nslookup google.comを試して、DNSの問題があるかどうかを確認してください。 192.168.1.254はローカルネットワークアドレスであり、システムがDNSサーバーとして使用しているようです。これもゲートウェイ/モデムルーターですか? google.comにpingを実行するとどうなりますか。インターネットWebブラウザで閲覧できますか?