본문 바로가기
Operating System/Linux & Unix

[LINUX] 서버의 서비스 중인 프로세스 확인(netstat, ss)

by 이미존재 2022. 10. 6.
반응형

■ Linux 서버의 서비스 중인(Listening) 서비스(Port) 확인 방법 2가지(netstat, ss)

▶ 내 서버에서 LISTEN 되고 있는 서비스와 해당 포트를 확인하고자 할 때 netstat 또는 ss로 확인이 가능합니다.

 

1. 개요

 1) netstat
  : Netstat prints information about the Linux networking subsystem
  : netstat는 리눅스 서버의 네트워크 상태를 확인 할때 주로 사용합니다. 라우팅 테이블, 네트워크 접속상태 등을 확인 할 수 있습니다.
 2) ss (Socket Statistics)
  : ss is used to dump socket statistics.
  : ss는 소켓 상태를 확인 할 수 있는 도구로 netstat와 비스한 정보를 제공하고 있습니다.

 

2. 서버에서 Listening 되고 있는 서비스와 프로세스 확인

 2-1. netstat

root@raonyn:~# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      1072/postgres       
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      991/sshd: /usr/sbin 
tcp        0      0 127.0.0.1:42231         0.0.0.0:*               LISTEN      1429/node           
tcp6       0      0 :::5432                 :::*                    LISTEN      1072/postgres       
tcp6       0      0 :::22                   :::*                    LISTEN      991/sshd: /usr/sbin 

 1) 서버에서 Listening 하고 있는 서비스의 포트, PID, Program name 등을 확인 할 수 있습니다.
 2) 주요 옵션 설명
  * -n : --numeric, Do not try to resolve service names. Show exact bandwidth values, instead of human-readable.
    => 도메인 질의를 하지 않고 IP로 표기해 줍니다.
  * -l :  --listening, Display only listening sockets (these are omitted by default).
    => Listening 되고 있는 소켓을 보여 줍니다.
  * -t : --tcp, Display TCP sockets.
    => TCP 포트를 사용하는 프로세스를 보여 줍니다. (UDP를 확인할 때는 -u 옵션 사용)
  * -p : --processes, Show process using socket.
    => 프로세스 및 PID를 보여 줍니다.

 2-2. ss

root@raonyn:~# ss -nltp
State          Recv-Q         Send-Q                   Local Address:Port                    Peer Address:Port         Process                                     
LISTEN         0              128                            0.0.0.0:22                           0.0.0.0:*             users:(("sshd",pid=991,fd=3))              
LISTEN         0              511                          127.0.0.1:42231                        0.0.0.0:*             users:(("node",pid=1429,fd=18))            
LISTEN         0              244                            0.0.0.0:5432                         0.0.0.0:*             users:(("postgres",pid=1072,fd=6))         
LISTEN         0              128                               [::]:22                              [::]:*             users:(("sshd",pid=991,fd=4))              
LISTEN         0              244                               [::]:5432                            [::]:*             users:(("postgres",pid=1072,fd=7))  

 1) 결과는 netstat와 비슷합니다.
 2) 최근 리눅스 배포판은 netstat 대체 도구로 ss 사용을 권장하고 있습니다.
 3) ss에서 지원하지 않는 netstat -r은 ip route(or route -n), netstat -i는 ip -s link로, netstat -g는 ip maddr명령으로 대체하여 사용하라고 하나 솔직히 불편한 점이 있습니다.

 

3. 추가 옵션

 : ss 유틸이나 netstat는 이외도 다양한 옵션을 사용 할 수 있으며 리눅스 운영에서는 필수 도구로 사용법을 익혀 두는 것이 바람직합니다. System Manager's Manual(man 명령)에서 확인하고 사용해보세요.

728x90

댓글