Using ss (Socket Statistics) COMMAND on Linux

netstat 명령어를 대체하는 ss (Socket Statistics) 소개

ss 는 Socket Statistics 의 약자이며, netstat 명령어를 대체 하는 linux 명령어 입니다. CentOS 7 버전부터는 netstat 대신 기본적으로 ss 가 내장되어 있습니다.

이전 버전의 리눅스에 익숙해져 있는 사용자들은 ss 사용이 낯설게 느껴질 수 있습니다. 여전히 netstat 패키지 설치를 지원하기 때문에 그냥 설치하여 사용해도 되지만 netstat 대신 ss 를 써야 하는 이유는 크게 아래와 같습니다.

  1. netstat 의 맨 페이지를 보시면 This program is obsolete. Replacement for netstat is ss 라고 명시되어 있습니다.
  2. netstat 는 /proc/net/tcp 아래 파일들을 읽어와 정보를 출력해 줍니다. 즉, 파일을 읽는다는 뜻입니다.
  3. ss 는 NETLINK 라이브러리를 이용하여 커널에서 정보를 읽고 출력해 주기 때문에 파일을 읽는 netstat 보다 빠릅니다.

아래는 ss 명령어의 Usage 입니다.

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

   -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|packet|netlink}[,QUERY]

   -D, --diag=FILE	Dump raw information about TCP sockets to FILE
   -F, --filter=FILE   read filter information from FILE
       FILTER := [ state TCP-STATE ] [ EXPRESSION ]

간단하게 ss 명령어를 사용해 보겠습니다.

Established 확인

[root@172-16-11-5 /]# ss | head -n 2
State      Recv-Q Send-Q      Local Address:Port          Peer Address:Port   
ESTAB      0      64          172.16.11.5:ssh             172.16.20.2:51877

TCP 확인

[root@172-16-11-5 /]# ss -lt
State      Recv-Q Send-Q     Local Address:Port                 Peer Address:Port
LISTEN     0      100            127.0.0.1:smtp                            *:*
LISTEN     0      128                    *:zabbix-agent                    *:*
LISTEN     0      128                    *:zabbix-trapper                  *:*
LISTEN     0      128                    *:10061                           *:*
LISTEN     0      128                    *:http                            *:*
LISTEN     0      128                    *:ssh                             *:*
LISTEN     0      100                  ::1:smtp                           :::*
LISTEN     0      128                   :::mysql                          :::*
LISTEN     0      128                   :::ssh                            :::*

UDP 확인

[root@172-16-11-5 /]# ss -ul
State      Recv-Q Send-Q              Local Address:Port            Peer Address:Port   
UNCONN     0      0                   172.16.11.249:domain               *:*       
UNCONN     0      0                   127.0.0.1:domain                   *:*

IPv4 소켓 확인

[root@172-16-11-5 /]# ss -l4
Netid  State      Recv-Q Send-Q        Local Address:Port             Peer Address:Port                
tcp    LISTEN     0      100              127.0.0.1:smtp                      *:*                    
tcp    LISTEN     0      128                      *:zabbix-agent              *:*                    
tcp    LISTEN     0      128                      *:zabbix-trapper            *:*                    
tcp    LISTEN     0      128                      *:10061                     *:*                    
tcp    LISTEN     0      128                      *:http                      *:*                    
tcp    LISTEN     0      128                      *:ssh                       *:*

소켓별 메모리

[root@172-16-11-5 /]# ss -ltm
State      Recv-Q Send-Q                      Local Address:Port                 Peer Address:Port                
LISTEN     0      100                             127.0.0.1:smtp                        *:*
     skmem:(r0,rb87380,t0,tb16384,f0,w0,o0,bl0,d0)
LISTEN     0      128                                     *:zabbix-agent                *:*
     skmem:(r0,rb87380,t0,tb16384,f0,w0,o0,bl0,d0)
LISTEN     0      128                                     *:zabbix-trapper              *:*
     skmem:(r0,rb87380,t0,tb16384,f0,w0,o0,bl0,d0)
LISTEN     0      128                                     *:10061                       *:*
     skmem:(r0,rb87380,t0,tb16384,f0,w0,o0,bl0,d0)
LISTEN     0      128                                     *:http                        *:*
     skmem:(r0,rb87380,t0,tb16384,f0,w0,o0,bl0,d0)
LISTEN     0      128                                     *:ssh                         *:*
     skmem:(r0,rb87380,t0,tb16384,f0,w0,o0,bl0,d0)
LISTEN     0      100                                   ::1:smtp                        :::*
     skmem:(r0,rb87380,t0,tb16384,f0,w0,o0,bl0,d0)
LISTEN     0      128                                    :::mysql                       :::*
     skmem:(r0,rb87380,t0,tb16384,f0,w0,o0,bl0,d0)
LISTEN     0      128                                    :::ssh                         :::*
     skmem:(r0,rb87380,t0,tb16384,f0,w0,o0,bl0,d0)

소켓별 통계

[root@172-16-11-5 /]# ss -s
Total: 1002 (kernel 1650)
TCP:   220 (estab 4, closed 203, orphaned 0, synrecv 0, timewait 203/0), ports 0

Transport Total     IP        IPv6
*	  1650      -         -        
RAW	  1         0         1        
UDP	  0         0         0        
TCP	  17        14        3        
INET	  18        14        4        
FRAG	  0         0         0

이 외에도 ss 명령어에 존재하는 옵션 및 필터들의 조합으로 많은 정보를 확인할 수 있습니다. 자세한 내용은 ss(8) – Linux manual page (man7.org) 페이지를 참고 해 주시면 됩니다.

You may also like...

Subscribe
Notify of
guest

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x