Curlはデフォルトでipv6では動作しません。

Curlはデフォルトでipv6では動作しません。

成功せずにipv6アドレスをカリングしようとしています。

私が言おうとすると:

カールhttps://google.com

私はタイムアウトを待っていますnetwork unreachable

強制すると、ipv4すべてが大丈夫です。

カール-4https://google.com

それからipv6を次のように強制すると:

カール-6https://google.com

私は得る:

カール: (7) 2800:3f0:4001:806::1005 に接続できません: ネットワークに接続できません。

ipv6アドレスを解析することに関連していると思います。

一部のLinuxディストリビューションの最新バージョンを使用している他のコンピュータでは、これらの要求が正しく機能していることがわかりましたUbuntu 10.10

option:を使用せずに正常にカールできるようにしたいです。アドレスを正しくカリングするには、-4何を変更する必要がありますか?ipv6

ベストアンサー1

IPv6アドレスを確認することは問題ではありません。カールがネットワーク 2800:3f0:4001:806::1005 に到達できないことを報告するため、名前解決は正常に機能します。これは、名前変換が実際に成功したことを示します。これは名前検索エラーとは異なります。

 $ curl -6 http://does.not.exist.foo.
 curl: (6) Couldn't resolve host 'does.not.exist.foo.'

IPv6アドレスに到達するには、宛先アドレスへのパスが必要であり、IPv6接続を持つ接続はほとんどありません。この記事を書いているコンピュータにはv6ルーティングがほとんどありません。

$ route -A inet6
Kernel IPv6 routing table
Destination                    Next Hop                   Flag Met Ref Use If
fe80::/64                      ::                         U    256 0     0 wlan0
ff00::/8                       ::                         U    256 0     0 wlan0

これはあなたと私が私のローカルネットワークにアクセスする方法を知っていることを意味し、それはすべてです。これを私のIPv4ルーティングと比較してみてください。

$ route -n 
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 wlan0

これは、非常に重要なルーティング情報が得られたことを示します。私は192.168.1.1のプライマリルータにパケットを転送し、明示的なパスなしでどこにでも移動する方法を知っています。

名前解決が正しく機能しています。ターゲットネットワークへのIPv6パスが必要ですが、この機能を提供する場所が少なすぎます。

おすすめ記事