我们有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。杀死它,它应该关闭。