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
(루트로 명령을 실행하는 경우 sudo가 필요하지 않습니다. -p 매개변수는 프로세스를 표시하며 높은 권한이 필요합니다.)
포트 50070을 언급하는 줄을 찾으세요. grep
청취 포트가 많은 경우에 사용하십시오. 마지막 열에는 열린 포트의 이름과 PID가 표시됩니다. 그것을 죽이고 닫혀야합니다.