netstat command
linux의 netstat
명령어를 통해 현재 연결된 네트워크 상태, 라우팅 테이블,
인터페이스 상태, IP Masquerade, 멀티캐스트 멤버쉽 등을 확인 할 수 있습니다.
기본 사용법
$> netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 192.168.0.50:38608 nrt20s21-in-f10.1:https ESTABLISHED
...
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ] DGRAM 34946 /run/user/1000/systemd/notify
unix 3 [ ] DGRAM 19785 /run/systemd/notify
unix 3 [ ] SEQPACKET CONNECTED 238454 @0002d
...
출력된 정보는 다음과 같습니다.
Active Internet Connections
: TCP, UDP, RAW로 연결된 목록Proto
: 프로토콜Recv-Q
: 소켓에 연결된 사용자 프로그램에서 복사하지 않는 받은 바이트 수Send-Q
: 원격 호스트에서 승인하지 않은 바이트 수Local Address
: 로컬 주소와 포트 번호Foreign Address
: 원격 주소와 포트 번호
-n(--numeric)
옵션을 사용하지 않으면 소켓 주소는 표준 호스트 이름(FQDN)으로 확장되고 포트 번호는 해당 서비스 이름으로 변환된다
-
State
: 소켓 상태ESTABLISHED
: 소켓이 연결된 상태SYN_SENT
: 소켓이 연결을 시도하고 있는 상태SYN_RECV
: 네트워크 연결 요청을 받은 상태FIN_WAIT1
: 소켓이 닫히고 연결이 종료되고 있는 상태FIN_WAIT2
: 연결이 닫히고 소켓이 원격으로부터 종료를 기다리는 상태TIME_WAIT
: 연결 종료후 소켓이 네트워크에 있는 패킷을 처리하기 위해 대기중인 상태CLOSE
: 소켓이 사용되지 않는 상태CLOSE_WAIT
: 종료 대기중인 상태LAST_ACK
: 원격 연결 종료 요구 승인을 기다리는 상태LISTEN
: 연결요청에 대한 응답준비가 되어 있는 상태CLOSING
: 두 소켓이 모두 종료되었지만 모든 데이터가 전송되지 않는 상태(메시지 유실 상태)UNKNOWN
: 소켓 상태를 알 수 없음
-
Active UNIX domain sockets (w/o servers)
: 도메인 소켓으로 연결된 목록Proto
: 프로토콜RefCnt
: 참조 숫자Flags
: 표시되는 플래그는 ACC(SO_ACCEPTON), W(SO_WAITDATA), N(SO_NOSPACE)Type
: 소켓 액세스 유형SOCK_DGRAM
: 소켓이 Datagram(연결없는) 모드에 사용SOCK_STREAM
: Stream(연결) 소켓SOCK_RAW
: RAW 소켓SOCK_RDM
: 안정적으로 전달 된 메시지SOCK_SEQPACKET
: 순차 패킷 소켓SOCK_PACKET
: RAW 인터페이스 액세스 소켓UNKNOWN
: 모름
State
FREE
: 할당되지 않은 소켓LISTENING
: 연결 요청에 대한 응답 준비가 되어 있는 상태CONNECTING
: 연결중인 상태CONNECTED
: 연결된 상태DISCONNECTING
: 연결이 해제되고 있는 상태(empty)
: 소켓이 다른 소켓에 연결되어 있지 않은 상태UNKNOWN
: 절대로 나와서는 안되는 상태
I-Node
: 아이노드Path
: 소켓에 연결된 해당 프로세스의 경로
TLDR
$> tldr netstat
netstat
Displays network-related information such as open connections, open socket ports, etc.
- List all ports:
netstat -a
- List all listening ports:
netstat -l
- List listening TCP ports:
netstat -t
- Display PID and program names:
netstat -p
- List information continuously:
netstat -c
- List routes and do not resolve IP to hostname:
netstat -rn
- List listening TCP and UDP ports (+ user and process if you're root):
netstat -lepunt
- Print the routing table:
netstat -nr
활용
$> netstat -anp
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN 25272/java
...
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ] DGRAM 34946 2800/systemd /run/user/1000/systemd/notify
unix 2 [ ACC ] STREAM LISTENING 34947 2800/systemd /run/user/1000/systemd/private
...
Help
$> netstat --help
usage: netstat [-vWeenNcCF] [<Af>] -r netstat {-V|--version|-h|--help}
netstat [-vWnNcaeol] [<Socket> ...]
netstat { [-vWeenNac] -i | [-cWnNe] -M | -s }
-r, --route display routing table
-i, --interfaces display interface table
-g, --groups display multicast group memberships
-s, --statistics display networking statistics (like SNMP)
-M, --masquerade display masqueraded connections
-v, --verbose be verbose
-W, --wide don't truncate IP addresses
-n, --numeric don't resolve names
--numeric-hosts don't resolve host names
--numeric-ports don't resolve port names
--numeric-users don't resolve user names
-N, --symbolic resolve hardware names
-e, --extend display other/more information
-p, --programs display PID/Program name for sockets
-c, --continuous continuous listing
-l, --listening display listening server sockets
-a, --all, --listening display all sockets (default: connected)
-o, --timers display timers
-F, --fib display Forwarding Information Base (default)
-C, --cache display routing cache instead of FIB
<Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom
<AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: inet
List of possible address families (which support routing):
inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP)
x25 (CCITT X.25)
참고
- IP Masquerade{:target=“blank”}
- I-Node{:target=“blank”}