ローカルホストからの接続が拒否されました。

ローカルホストからの接続が拒否されました。

CentOS 7では、HTTPおよび直接TCP / UDP(Webサーバー、データベースなど)を使用してlocalhostの一部のサービスへの接続を開こうとしますが、8080または80メッセージではないポートからの接続は拒否されます。 (ps:22番ポートへのSSHは正常に動作します。)

これまでに試したことは次のとおりです。

selinuxのステータスを確認しました..:

[root@ ~]# sestatus
 SELinux status:                 disabled

その後、ファイアウォールを確認しました。

[root@ ~]# systemctl status firewalld
● firewalld.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)
[root@ ~]# systemctl status iptables
● iptables.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

それでは、selinuxでもファイアウォールでもないなら、何を探すべきでしょうか?

これはnetcatが出力するものです(8080と80ではうまく機能します)。注:これは接続されている^Cため割り込み信号を示します。nc

[root@ ~]# nc localhost 8080
^C
[root@ ~]# nc localhost 80
^C
[root@ ~]# nc -v localhost 5544
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connection to ::1 failed: Connection refused.
Ncat: Trying next address...
Ncat: Connection refused.
[root@ ~]# nc -v 127.0.0.1 25544
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connection refused.

ss -vtnlp | grep :5544私には何も提供しません(そして相手のサービスは接続が拒否されます)。

助けてくれてありがとう!

答え1

接続を受信する必要があるサービスがそうでないことがわかりました!サービスをより高いポートに移動した後、これはうまくいきますが、なぜこれが起こるのかわかりません。

[root ~]# ss -tnlp | grep :35544
LISTEN     0      50          :::35544 

おそらくこれは他の人に役立ちます:

(私が完全に見逃した)主な指標は、ss -tnlpコマンドが私がリスニングすることを期待しているポートをリストしないことです。

また、実行 ss -tnlp | grep :port結果が空の場合、実際にはそのポートへの「オープン接続」がないことを意味するため、接続拒否エラーメッセージが表示されます。

私の場合、プロセスはlogstashであり、ポートでリッスンできないというエラーは発生しませんでした。

関連情報