리눅스 ss,netstat 명령어

dong5854·2022년 2월 18일
1

ssnetstat는 네트워크 소켓 정보를 표시하기 위해 사용한다.

ss명령어는 netstat를 대체하기 위해 나온 명령어로 netstat보다는 ss명령어의 사용을 추천한다.
man ssman netstat를 사용해 각각의 명령어에 대한 설명을 보면 아래와 같이 나옴을 통해 확인할 수 있다.

ss
ss is used to dump socket statistics(ss). It allows showing information similar to netstat. It can display more TCP and state information than other tools.

netstat
This program is mostly obsolete. Replacement for netstat is ss. Replacement for netstat -r is ip route. Replacement for netstat -i is ip -s link. Replacement for netstat -g is ip maddr.

netstat의 사용이 추천되지 않지만 지금까지 나는 ss의 존재를 모르고 netstat만 사용했었다. 일단 아직도 netstat가 널리 쓰인다고도하고 지금까지 내가 사용한게 억울해서라도 정리는 해둔다.

ss

사용법: ss

-a, --all 옵션은 모든 소켓을 표시한다.
-l, --listening 옵션은 접속 대기 상태 소켓만 표시한다.
-n, --numeric 옵션은 호스트 DNS명이 아니라 IP 주소로 표시한다.
-t, --tcp 옵션은 tcp 소켓을 표시한다.
-u, --udp 옵션은 udp 소켓을 표시한다.
-x, --unix 옵션은 UNIX 도메인 소켓을 표시한다.
-s, --summary 옵션은 각 프로토콜의 통계 정보를 표시한다.

dong@ubuntu:/var/log$ ss
Netid                   State                    Recv-Q                    Send-Q                                                               Local Address:Port                                                Peer Address:Port                     Process                   
u_str                   ESTAB                    0                         0                                                                                * 112576                                                         * 113176                                             
u_str                   ESTAB                    0                         0                                                               /run/user/1000/bus 63085                                                          * 63084                                              
u_str                   ESTAB                    0                         0                                                      /run/user/1000/pulse/native 67460                                                          * 68275                                              
.
.
.

ss 출력 필드

  • Netid: 프로토콜 명
  • State: 소켓 상태
  • Recv-Q: 수신 실패 데이터 바이트 수
  • Send-Q: 송신 실패 데이터 바이트 수
  • Local Address:Port: 소켓에 연결된 경로명 또는 로컬 호스트명(IP 주소):포트 번호
  • Peer Address:Port: 원격 호스트 호스트명(IP 주소): 포트 번호

netstat

사용법: netstat

dong@ubuntu:/var/log$ netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
udp        0      0 ubuntu:bootpc           192.168.217.254:bootps  ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  4      [ ]         DGRAM                    26966    /run/systemd/notify
unix  2      [ ]         DGRAM                    58698    /run/user/1000/systemd/notify
unix  2      [ ]         DGRAM                    26980    /run/systemd/journal/syslog
unix  17     [ ]         DGRAM                    26990    /run/systemd/journal/dev-log
unix  9      [ ]         DGRAM                    26994    /run/systemd/journal/socket
unix  2      [ ]         DGRAM                    53533    @0000b
unix  3      [ ]         STREAM     CONNECTED     112576   
unix  3      [ ]         STREAM     CONNECTED     63085    /run/user/1000/bus
.
.
.

netstat 출력 필드

  • Proto: 프로토콜 명
  • Recv-Q: 수신 실패 데이터 바이트 수
  • Send-Q: 송신 실패 데이터 바이트 수
  • Local Address: 소켓에 연결된 경로명 또는 로컬 호스트명(IP 주소):포트 번호
  • Foreign Address: 원격 호스트 호스트명(IP 주소): 포트 번호
  • Stat: 소켓 상태
  • RefCnt: 소켓에 접속한 프로세스 개수
  • Flag: 플래그
  • Type: 소켓 종류
  • I-Node: 소켓 i-node
  • Path: 소켓에 연결된 경로명
profile
https://github.com/dong5854?tab=repositories

0개의 댓글