리눅스 시스템 관리자와 네트워크 프로그래머에게 네트워크 상태를 확인하기 위한 netstat 명령어는 매우 유용한 툴 중의 하나이다. netstat는 네트워크 연결, 라우팅 테이블, 인터페이스 통계, 마스커레이딩 연결, 멀티캐스트 멤버쉽 등 네트워크와 관련된 정보를 표시한다. netstat 1.42의 맨페이지를 확인해보면 이 netstat는 다른 프로그램으로 대체되고 있다는 문구를 볼 수 있다.
This program is 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를 알아보도록 한다.
1. 모든 포트 보기
1.1 전체 포트 보기
$ ss -a
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 :::50330 :::*
LISTEN 0 50 :::microsoft-ds :::*
LISTEN 0 50 *:mysql *:*
LISTEN 0 50 :::netbios-ssn :::*
.
.
1.2 전체 TCP 포트 보기
$ ss -at
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 :::50330 :::*
LISTEN 0 50 :::microsoft-ds :::*
LISTEN 0 50 *:mysql *:*
LISTEN 0 50 :::netbios-ssn :::*
LISTEN 0 128 *:37996 *:*
.
.
1.3 전체 UDP 포트 보기
$ ss -au1.4 전체 유닉스 포트 보기
State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 *:bootpc *:*
UNCONN 0 0 *:sunrpc *:*
UNCONN 0 0 *:ipp *:*
UNCONN 0 0 192.168.200.6:ntp *:*
UNCONN 0 0 127.0.0.1:ntp *:*
.
.
$ ss -ax
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
u_str LISTEN 0 0 @/com/ubuntu/upstart 7075 * 0
u_str ESTAB 0 0 * 8883 * 0
u_str ESTAB 0 0 * 8884 * 0
u_str ESTAB 0 0 * 8895 * 0
u_str ESTAB 0 0 * 8896 * 0
.
.
2. Listening 상태의 포트 보기
2.1 Listening 상태의 포트 보기
$ ss -l
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 128 :::50330 :::*
0 50 :::microsoft-ds :::*
0 50 *:mysql *:*
0 50 :::netbios-ssn :::*
0 128 *:37996 *:*
.
.
2.2 Listening 상태의 tcp 포트 보기
$ ss -tl
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 128 :::50330 :::*
0 50 :::microsoft-ds :::*
0 50 *:mysql *:*
0 50 :::netbios-ssn :::*
.
.
2.3 Listening 상태의 udp 포트 보기
$ ss -ul2.4 Listening 상태의 유닉스 포트 보기
$ ss -xl
Netid Recv-Q Send-Q Local Address:Port Peer Address:Port
u_str 0 0 @/com/ubuntu/upstart 7075 * 0
u_str 0 0 /var/run/rpcbind.sock 9061 * 0
u_str 0 0 /var/run/dbus/system_bus_socket 9153 * 0
u_str 0 0 /var/run/avahi-daemon/socket 9206 * 0
u_str 0 0 /var/run/vmware/usbarbitrator-socket 9493 * 0
.
.
3. Established 상태의 포트 보기
$ ss -o state established
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 0 ::ffff:192.168.200.6:ftp ::ffff:221.155.87.78:47533 timer:(keepalive,48min,0)
0 0 192.168.200.6:5902 221.155.87.78:46865
0 184 192.168.200.6:ssh 221.155.87.78:47264 timer:(on,390ms,0)
4. 프로세스명 표시하기
-p 옵션은 프로세스명을 표시할 것이다. 특정 포트에서 실행되는 프로그램을 찾을 때 매우 유용하다.
$ ss -p5. 출력 화면의 호스트명, 포트, 사용자명 보기
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 ::ffff:192.168.200.6:ftp ::ffff:221.155.87.78:47674
ESTAB 0 0 192.168.200.6:5902 221.155.87.78:46865
users:(("Xvnc",2642,19))
ESTAB 0 52 192.168.200.6:ssh 221.155.87.78:47264
-n 옵션을 사용하면 출력화면에서 호스트명, 포트 또는 사용자명을 표시하지 않을 것이다. 호스트명, 포트명, 사용자이름을 표시하는 대신 이들을 숫자로 표시할 것이다. 이 옵션을 사용하면 호스트명 등을 찾기 위한 시간이 단축되어 빠르게 표시할 것이다.
$ ss -n
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 ::ffff:192.168.200.6:21 ::ffff:221.155.87.78:47674
ESTAB 0 0 192.168.200.6:5902 221.155.87.78:46865
ESTAB 0 52 192.168.200.6:22 221.155.87.78:47264
좋은글 보고갑니다
답글삭제@passing stranger - 2010/04/10 16:11
답글삭제좋은 말씀 감사합니다. ^^