Redhat 7.5サーバーがあります
ポート50070がサービスによって正しく閉じられていないと思われますが(netstatで確認した結果、PIDはありません)、ログを見るとポートが使用中であることがわかります。
だから私たちは次のことをしようとします。
ss --kill state listening src :50070
ss: unrecognized option '--kill'
Usage: ss [ OPTIONS ]
ss [ OPTIONS ] [ FILTER ]
-h, --help this message
-V, --version output version information
-n, --numeric don't resolve service names
-r, --resolve resolve host names
-a, --all display all sockets
-l, --listening display listening sockets
-o, --options show timer information
-e, --extended show detailed socket information
-m, --memory show socket memory usage
-p, --processes show process using socket
-i, --info show internal TCP information
-s, --summary show socket usage summary
-b, --bpf show bpf filter socket information
-Z, --context display process SELinux security contexts
-z, --contexts display process and socket SELinux security contexts
-N, --net switch to the specified network namespace name
-4, --ipv4 display only IP version 4 sockets
-6, --ipv6 display only IP version 6 sockets
-0, --packet display PACKET sockets
-t, --tcp display only TCP sockets
-u, --udp display only UDP sockets
-d, --dccp display only DCCP sockets
-w, --raw display only RAW sockets
-x, --unix display only Unix domain sockets
-f, --family=FAMILY display sockets of type FAMILY
-A, --query=QUERY, --socket=QUERY
QUERY := {all|inet|tcp|udp|raw|unix|unix_dgram|unix_stream|unix_seqpacket|packet|netlink}[,QUERY]
ただし、ssには終了フラグは含まれていません。
rhelシステムでポートを正しく閉じるか、ポートを解放するオプションは何ですか?
答え1
ポートを殺すのではなく、ポートを開いたデーモン/サービスを殺すことです。 Firewalld または iptables を使用してポートへのトラフィックをブロックできます。
最初の試みtelnet localhost 50070
。接続できますか?
その場合は、次のコマンドを実行します。
sudo ss -tulp
(rootでコマンドを実行する場合、sudoは必要ありません。-pパラメータはプロセスを表示し、高い権限が必要です。)
ポート50070を参照する行を見つけます。grep
リスニングポートが多い場合に使用してください。最後の列には、開いているポートの名前とPIDが表示されます。それを殺して閉じなければなりません。