「接続拒否」メッセージの原因は何ですか?

「接続拒否」メッセージの原因は何ですか?

これは標準的な質問について接続拒否

次のような質問が多く寄せられています

システムに接続しようとするとメッセージが表示される

接続拒否

どうしてこれなの ?

答え1

注記: このメッセージは、解決しようとしている問題の症状です。メッセージの原因を理解することが、最終的に問題の解決につながります。

「接続が拒否されました」というメッセージには、主に 2 つの原因があります。

  1. 接続しようとしている IP:ポートでは何もリッスンしていません。
  2. ポートはファイアウォールによってブロックされています。

リッスンしているプロセスはありません。

これは、このメッセージが表示される最も一般的な理由です。まず、正しいシステムに接続しようとしていることを確認してください。正しい場合は、これが問題であるかどうかを判断するために、リモートシステムで以下を実行します。ネットスタットまたはss1例えば、プロセスがポート22222で待機していることを期待している場合

sudo netstat -tnlp | grep :22222

または

ss -tnlp | grep :22222

OSXの場合、適切なコマンドは

sudo netstat -tnlp tcp | grep '\.80 '

何もリッスンしていない場合、上記は出力を生成しません。何らかの出力が表示された場合は、それが期待どおりであることを確認してから、以下のファイアウォール セクションを参照してください。

リモート システムにアクセスできず、関係する管理者に報告する前に問題を確認したい場合は、tcpdump (wireshark または類似のもの) を使用できます。

何もリッスンしていないIP:ポートへの接続が試みられると、最初のSYNパケットに対するリモートシステムからの応答は、フラグRST、ACKが設定されたパケットです。これにより接続が閉じられ、接続拒否メッセージが表示されます。例:

$ sudo tcpdump -n ホスト 192.0.2.1、ポート 22222
tcpdump: 詳細な出力は抑制されています。完全なプロトコル デコードには -v または -vv を使用してください。enp14s0
でリッスンしています。リンク タイプ EN10MB (イーサネット)、キャプチャ サイズ 262144 バイト

12:31:27.013976 IP 192.0.2.2.34390 > 192.0.2.1.22222: フラグ[ス]、seq 1207858804、win 29200、オプション [mss 1460、sackOK、TS val 15306344 ecr 0、nop、wscale 7]、長さ 0

12:31:27.020162 IP 192.0.2.1.22222 > 192.0.2.2.34390: フラグ[R.]、シーケンス 0、ack 1207858805、勝利 0、長さ 0

tcpdumpはACKを表すフラグ。

ポートはファイアウォールによってブロックされています

ポートがファイアウォールによってブロックされており、ファイアウォールがicmp-port-unreachableこれに対応するように設定されている場合、接続拒否メッセージも表示されます。これも tcpdump (または同様のもの) で確認できます。

$ sudo tcpdump -n icmp
tcpdump: 詳細出力は抑制されています。完全なプロトコル デコードには -v または -vv を使用してください

。enp14s0 でリッスンしています。リンク タイプ EN10MB (イーサネット)、キャプチャ サイズ 262144 バイト 13:03:24.149897 IP 192.0.2.1 > 192.0.2.2: ICMP 192.0.2.1 tcp ポート 22222 に到達できません。長さ 68

これにより、ブロックしているファイアウォールの場所もわかることに注意してください。


これで、接続拒否メッセージの原因がわかったので、ファイアウォール管理者に連絡するか、プロセスがリッスンしない理由を調査するなど、適切な措置を講じる必要があります。

1他のツールも利用できる可能性があります。

答え2

私の場合、Debian 6 Squeezeでは次のように簡単でした。SSHサービスの確認:

sudo service ssh status

そして何も存在しないことを発見した(メッセージとともにssh: unrecognized serviceサービスのインストール:

sudo apt-get install openssh-server

SFTP は SSH のサブセットであり (FTPS は FTP のサブセットである)、SFTP 接続が確立されていない場合でもこの方法は機能します。

答え3

「接続拒否」メッセージの原因は何ですか?

  • 正しくない指定された IP アドレスまたはポート番号。
  • サーバーアプリケーションは走っていないそのポートをリッスンします。
  • サーバーアプリケーションは実行されていますが、聞いていない指定されたポートで。
  • ローカル/リモートファイアウォール接続をブロックします。
  • サーバーの過負荷またはリソース枯渇。

関連情報