接続試行の出力に表示されないERR_CONNECTION_RESETメッセージ(または同様)を表示できる2つの異なる場所にある2つの異なるLinuxクライアントのLinuxコマンドラインで実行できることはありますか? httpsを使用してドメインまたはURI全体を介して接続しようとしたときにこれを行う方法があるかどうか疑問に思います。
(ERR_CONNECTION_RESETは、ファイアウォールのブロックによって接続が失敗したことを示す可能性があることを理解しています。他のファイアウォールと比較して、1つの接続パスを使用するときにリソースがブロックされる可能性があることを確認しようとしています。)
答え1
これcurl
コマンドの終了コードが56の場合ピアによる接続のリセット起こる:
56ネットワークデータの受信に失敗しました。
curl http://someurl/
$ curl http://192.0.2.2:8080/
unfinished data...
curl: (56) Recv failure: Connection reset by peer
$ echo $?
56
56が以下によってのみ発生するという保証はありません(文書内)。ピアによる接続のリセットそれさえピアによる接続のリセット56でのみ終了できますが、エラーをフィルタリングすることもできます。標準エラー次のように(2>&1
意図的に最初):
LANG=C curl --no-progress-meter http://someurl/ 2>&1 >/dev/null |
grep -Fq 'Connection reset by peer' && echo RST || echo non-RST
これでRSTが印刷されます。ピアによる接続のリセットそして他のもの(成功を含む)についてはRSTではありません。
本番環境で使用するのは脆弱ですが、文字列はヘッダーデータなどで表示される可能性がありますが、特定の問題をデバッグするためです。