注:このメッセージは、解決しようとしている問題の症状です。メッセージの原因を理解することは、最終的には問題の解決につながります。
「接続が拒否されました」というメッセージには、主に2つの原因があります。
待機しているプロセスはありません。
これが、メッセージの最も一般的な理由です。まず、正しいシステムに接続しようとしていることを確認してください。これが問題であるかどうかを判断する必要がある場合は、リモートシステムで netstat または ss を実行します。1 例えばプロセスがポート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:フラグ[S]、シーケンス1207858804、勝利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。]、seq 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 他のツールが利用できる可能性があります。
Debian 6 squeezeでの私にとっては SSHサービスのチェック と同じくらい簡単でした:
Sudo service ssh status
そして、何も見つからなかった(メッセージssh: unrecognized service
)だけ サービスのインストール :
Sudo apt-get install openssh-server
これは、SFTPがSSHのサブセットであるため(SFTPはFTPのサブセットです)、SFTP接続を取得していない場合にも機能します。
Centos Shorewallファイアウォールのディスク領域が不足しています。紛らわしいことに、youtubeやMSなどの一部のサイトは機能しました。 cnn.comなどの他のものは失敗しました。一部のスペースをクリアしてサーバーを再起動すると、問題が解決しました。