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であり、ポートでリッスンできないというエラーは発生しませんでした。