web-dev-qa-db-ja.com

TLSハンドシェイクがVPSで*永久*(20秒)になるのはなぜですか?

一般的には問題なく動作するサーバーがありますが、SSLで接続しようとすると20秒間停止します(SSHまたはHTTPSのどちらでも同じパターンが表示されます)。

Telnetなど、SSLを使用しないさまざまな接続を試しました。

telnet server-name 80

GETコマンドを入力した

GET http://server-name/
Host: server-name
Accept: text/html, */*
Accept-Language: en-us
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

返信は100%瞬時です。

ただし、ブラウザでHTTPS経由でサーバーに接続するか、SSHを使用して同じサーバーに接続しようとすると、接続する前に約20秒間待機します。

SSHの場合は、問題なく動作します(つまり、まったく遅くなりません)。 HTTPSの場合、再接続するたびに遅くなります。ただし、閉じられない接続は引き続き高速で機能します。

Firebugに表示されるネット情報のスクリーンショットを追加しています。ご覧のとおり、新しい接続が試行されるたびに、20秒です。 htopを使用したサーバーの使用状況を見ると、CPUは0%であり、何かが発生すると、1分間で0.01%のフーピーになります。使用レポート。したがって、サーバー全体はまったくペグされていません(つまり、この時点ではテストサーバーであり、他のユーザーからのヒットはまだありません)。

enter image description here

だから私の質問は:何がそのような減速を引き起こす可能性がありますか?

OpenSSLが/ dev/randomを使おうとしているのではないかと思ったのですが、そのような問題について聞いたことがありません。ランダムデバイスは、そのVPSではまったく出力しません。ただし、/ dev/urandomは非常にうまく機能します。数秒で1Mbのランダムデータを取得できます。この問題を解決するために何を調べればよいですか?


/etc/resolv.confはGoogle DNSのように見えます。速くなければならない...

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 8.8.4.4

SSH2でも発生するため、Apache2の設定自体は直接問題にはなりません。


また、ssh -vvv。接続は瞬時に行われます。

OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /home/alexis/.ssh/config
debug1: /home/alexis/.ssh/config line 202: Applying options for do-nia2match
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Hostname has changed; re-reading configuration
debug1: Reading configuration data /home/alexis/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 178.62.213.172 [178.62.213.172] port 22.
debug1: Connection established.
...
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /home/alexis/.ssh/do-nia2match_rsa, explicit

SUPER LONG PAUSE HAPPENS HERE (~20s)

debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred publickey,keyboard-interactive
debug3: authmethod_lookup publickey
...

鍵を送信するときにSSHサーバーが20秒間ハングする理由がよくわかりません...

4
Alexis Wilke

127.0.0.1アドレスを除くすべての127.0.0.0をブロックしていることがわかりました(さかのぼります-コメントを参照)。

Debian、つまりUbuntuは、ドメイン名を使用して、127.0.1.1の/etc/hostsにエントリを定義します。 /etc/hostsファイルの先頭に次のようなものが表示されます。

127.0.1.1     hostname.example.com hostname

ファイアウォールを確認する必要があり、実際にはすべて127.x.x.xを開くことにしました。すべてがプライベートネットワークの一部であり、これらはすべて安全なIPだからです。

1
Alexis Wilke