2

Fedora 19 LXDE をインストールしました。初めて URL に対して curl を実行すると、失敗します。

curl -v youtube.com
* Could not resolve host: youtube.com; Name or service not known
* Closing connection 0
curl: (6) Could not resolve host: youtube.com; Name or service not known

このコマンドをすぐに再実行すると、成功します。

curl -v youtube.com
* About to connect() to youtube.com port 80 (#0)
*   Trying 80.239.229.212...
* Connected to youtube.com (80.239.229.212) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: youtube.com
> Accept: */*
> 
< HTTP/1.1 301 Moved Permanently
< Date: Tue, 10 Sep 2013 20:05:20 GMT
< Server: gwiseguy/2.0
< Location: http://www.youtube.com/
< Content-Length: 0
< Content-Type: text/html
< X-XSS-Protection: 1; mode=block
< 
* Connection #0 to host youtube.com left intact

-4 オプションを指定すると、すべて問題なく動作するようです。何が問題なのですか?

nslookup は正常に動作し、解像度に問題はありません。

アップデート:

失敗した試行に対して strace を実行すると、次のエラーが表示されます。

open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)

そして echo $LANG LANG=/en_US.UTF-8 関係ありますか?

詳細:
私は Fedora 15 と Gnome を使用していました。すべてがうまくいきました。次に、LXDE と XFCE で Fedora 19 を試しました。どちらもカールに関して同じ問題を抱えています。

解決策:
この問題は IPv6 に関係しているようです。
1) 内部に「--ipv4」を指定して ~/.curlrc を作成しました。それはブラウザの問題のいくつかを解決しました。
2) yum を修正するために、「ip_resolve=4」を /etc/yum.conf に追加しました。

4

3 に答える 3

0

数年間、自宅の LAN 内の複数の (すべてではない) コンピューターで同じ問題が発生し、最終的に解決しました!

私にとってうまくいったこと:BT(私のISP)のWiFiルーターを持っています。DHCP経由で両方のネームサーバーとして独自の(つまりゲートウェイ)アドレスを提供する場合-明らかにローカルDNSキャッシュとして機能します。また、DHCP 経由でも 1 つの検索ドメインをブロードキャストし、「ホーム」としてハードコードされます (つまり、ルーター UI で再構成する方法はありません)。

最後に、この問題が発生していないシステムでは検索ドメインの使用が無効になっているのに気付きましたが、新しくインストールされた (そして深く調整されていない) システムでは、/etc/resolv.conf に 'search home' 行が残っていました。私が必要としたのは、すべてのローカルDHCPクライアントに検索ドメイン機能をオフにするように指示することだけでした.configを介して、または接続スクリプトを介して直接:具体的な方法はクライアントによって異なります。

たとえば、最初の試行で youtube.com.home を検索しようとした後、ルーター自体がそれを拒否し、次にローカル DNS クライアントがこの同じドメインにクエリを実行したときに、NXDOMAIN キャッシュが期限切れになるまでの短い時間、検索サフィックスを追加していないと推測できます (つまり、次の試行が約 15 分後に行われた場合は、再び失敗しました)。

PSインターネットで解決策を何度も調べたところ、BTルーターで同じ問題を報告している他の多くの人が見つかりましたが、解決策は提案されていません。したがって、このシナリオが OP の問題に関連していなくても、BT ルーターのすべての幸せな所有者に答えを残しておきます。

アップデート:

ところで、ipv6を無効にしても、私が試したときは役に立ちませんでした。はい、/etc/nssswitch.conf を確認し、ホストの解決を構成して、/etc/hosts とメイン DNS のみに従うようにしました。他のスリルはありません。これらの方法はいずれも根本的な原因ではありませんでした。

于 2014-10-17T22:49:03.757 に答える