回答:
注:このメッセージは、解決しようとしている問題の症状です。メッセージの原因を理解することは、最終的に問題を解決することにつながります。
「接続拒否」というメッセージには、主に2つの原因があります。
リッスンしているプロセスはありません。
これがメッセージの最も一般的な理由です。まず、正しいシステムに接続しようとしていることを確認してください。これが問題かどうかを判断する場合は、リモートシステムでnetstatまたはss 1を実行します。たとえば、プロセスがポート22222でリッスンすることを期待している場合
sudo netstat -tnlp | grep :22222
または
ss -tnlp | grep :22222
OSXの場合、適切なコマンドは
sudo netstat -tnlp tcp | grep '\.80 '
何もリッスンしていない場合、上記は出力を生成しません。何らかの出力が表示される場合は、期待どおりであることを確認してから、以下のファイアウォールセクションを参照してください。
リモートシステムにアクセスできず、問題を関連する管理者に報告する前に確認したい場合は、tcpdump(wiresharkなど)を使用できます。
何もリッスンしていないIP:portへの接続が試行されると、リモートシステムから最初のSYNパケットへの応答は、フラグRST、ACKが設定されたパケットになります。これにより、接続が閉じられ、接続拒否メッセージが表示されます。
$ sudo tcpdump -n host 192.0.2.1 and port 22222
tcpdump:詳細出力が抑制され、
enp14s0、リンクタイプEN10MB(イーサネット)、キャプチャサイズ262144バイト
12:31:27.013976 IPでリッスンする完全なプロトコルデコードに-vまたは-vvを使用192.0.2.2.34390> 192.0.2.1.22222:フラグ[S]、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.]、seq 0、ack 1207858805、win 0、length 0
tcpdumpはを使用することに注意してください。ACKフラグを表します。
ポートがファイアウォールによってブロックされています
ポートがファイアウォールによってブロックされ、ファイアウォールがicmp-port-unreachable
これで応答するように構成されている場合も、接続拒否メッセージが表示されます。繰り返しますが、これはtcpdump(または同様の)で見ることができます
$ sudo tcpdump -n icmp
tcpdump:詳細な出力を抑制します
。enp14s0、リンクタイプEN10MB(イーサネット)でリッスンする完全なプロトコルデコードには-vまたは-vvを使用し、キャプチャサイズ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のスクイーズでは、SSHサービスをチェックするのと同じくらい簡単でした:
sudo service ssh status
そして、サービスをインストールするssh: unrecognized service
だけで(メッセージとともに)何も存在しませんでした:
sudo apt-get install openssh-server
SFTPはSSHのサブセットであるため(FTPSはFTPのサブセットであるため)、これはSFTP接続を取得していない場合にも機能します。