テストページ:https://www.beobank.be/nl/Home.aspx
これは wget (または実際のブラウザ) を使用した結果です。
# time wget https://www.beobank.be/nl/Home.aspx -O /dev/null
--2015-01-26 12:05:46-- https://www.beobank.be/nl/Home.aspx
Resolving www.beobank.be (www.beobank.be)... 62.213.211.94
Connecting to www.beobank.be (www.beobank.be)|62.213.211.94|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 33444 (33K) [text/html]
Saving to: `/dev/null'
100%[======================================================================================================================================================>] 33,444 --.-K/s in 0.05s
2015-01-26 12:05:47 (670 KB/s) - `/dev/null' saved [33444/33444]
real 0m1.327s
user 0m1.072s
sys 0m0.060s
curl を使用した結果は次のとおりです。
# time curl https://www.beobank.be/nl/Home.aspx &>/dev/null
real 1m0.741s
user 0m0.012s
sys 0m0.012s
OS X ではこの問題は発生しないようです (cURL は高速です)。私がテストした限りでは、この問題は Linux でのみ発生します。すべてのマシン (いくつか試しました) は Debian ベース (最新のソフトウェアを実行) で、IPv6 が有効になっていますが、その Web サイトには IPv6 レコードがありません。すべてのテストは 1 分強で、何かがタイムアウトしているようです。
Google へのリクエストは高速です:
# time curl https://www.google.com/ &>/dev/null
real 0m0.550s
user 0m0.020s
sys 0m0.012s
IPv4 を強制するために cURL に「-4」パラメータを追加しても何も変わらないようです。
原因は何でしょうか?
答え1
tcpdump
2 番目のタブで CURL と wget を使用してサイトを取得するときに接続がどのように機能するかを調べるために、ポート 53 UDP を使用します。
通常の原因は IPv4/IPv6 の競合によって発生しますが、sysctl で IPv6 を無効にするか、single-request-reopen オプションを追加することで修正できます/etc/resolv.conf
。