GrepBoard/매뉴얼
51 편 ·

어느 프로세스가 포트를 듣고 있는지 보기

·ss (iproute2) · Ubuntu 24.04 출력 · firewalld 는 RHEL 9·firewalld 공식 문서 기준(Rocky 9 동일 계열)·4 단계

듣고 있는 TCP 소켓을 프로세스와 함께 보고, 포트 하나로 좁히고, firewalld 가 그 포트를 통과시키는지 확인합니다.

요즘 배포판에서는 ss 가 netstat 을 대신하며 기본으로 깔려 있습니다. 1~2단계 출력은 Ubuntu 24.04 서버에서 돌린 실제 결과이고(호스트에 따라 프로세스는 다릅니다), 3단계 firewalld 는 공식 문서를 따랐습니다.

[1] 듣고 있는 TCP 소켓을 그 프로세스와 함께 봅니다. -t TCP, -l 듣는 소켓, -n 숫자 그대로, -p 프로세스. 프로세스 칸은 root 로 돌려야 다 나옵니다.

console
# ss -tlnpState  Recv-Q Send-Q Local Address:Port Peer Address:Port ProcessLISTEN 0      4096      127.0.0.54:53        0.0.0.0:*    users:(("systemd-resolve",pid=668,fd=17))LISTEN 0      4096   127.0.0.53%lo:53        0.0.0.0:*    users:(("systemd-resolve",pid=668,fd=15))LISTEN 0      128          0.0.0.0:22        0.0.0.0:*    users:(("sshd",pid=883,fd=3))LISTEN 0      128             [::]:22           [::]:*    users:(("sshd",pid=883,fd=4))

[2] 포트 하나만 봅니다.

console
# ss -tlnp 'sport = :22'State  Recv-Q Send-Q Local Address:Port Peer Address:Port ProcessLISTEN 0      128          0.0.0.0:22        0.0.0.0:*    users:(("sshd",pid=883,fd=3))LISTEN 0      128             [::]:22           [::]:*    users:(("sshd",pid=883,fd=4))

[3] 프로세스가 듣고 있어도 방화벽이 막을 수 있습니다. firewalld 가 기본 존에서 허용한 서비스를 봅니다. 공식 문서의 예시 출력은 아래와 같습니다.

console
# firewall-cmd --list-servicesssh dhcpv6-client

[4] 서비스를 추가합니다. --permanent 변경은 reload 해야 적용되고, reload 는 이미 연결된 서비스를 끊지 않습니다.

console
# firewall-cmd --permanent --add-service=http# firewall-cmd --reload

#ss#firewalld#network