반응형
netstat은 "network status"의 약자로, 네트워크 연결, 라우팅 테이블, 인터페이스 상태 등을 보여주는 명령줄 도구다. 대부분의 운영 체제에서 사용할 수 있으며, 네트워크 연결 확인, 조회, 인터페이스 상태 등을 확인할 수 있으며 네트워크 문제의 진단과 분석에 매우 유용하다. 이 글은 리눅스 기준으로 작성되었다.
[목차]
1. netstat 명령어 기본 사용법
# netstat [옵션]
2. netstat 주요 옵션
옵션 | 설명 |
-a (모든 연결 및 리스닝 소켓 표시) | 모든 활성 연결과 리스닝 상태의 소켓을 표시. |
-n (숫자로 표시) | 호스트 이름과 서비스 이름 대신 IP 주소와 포트 번호를 숫자로 표시. |
-t (TCP 연결 표시) | TCP 프로토콜을 사용하는 연결만 표시. |
-u (UDP 연결 표시) | UDP 프로토콜을 사용하는 연결만 표시. |
-l (리스닝 소켓 표시) | 리스닝 상태인 소켓만 표시. |
-r (라우팅 테이블 표시) | 커널의 라우팅 테이블을 표시. |
-s (통계 표시) | 각 프로토콜별로 통계를 표시. |
-p (프로세스 ID와 이름 표시) | 소켓을 사용하는 프로세스의 ID와 이름을 표시. |
-c (연속 출력) | 지정된 간격으로 화면을 지속적으로 갱신. |
-e (확장된 정보 표시) | 확장된 정보를 표시. 이 옵션은 네트워크 문제 분석에 유용할 수 있습니다. |
-i (인터페이스 통계 표시) | 네트워크 인터페이스별 통계를 표시. |
-o (타이머 정보 표시) | 연결의 타이머 정보를 표시. |
-x (UNIX 도메인 소켓 표시) | UNIX 도메인 소켓의 정보를 표시. |
-v (버전 정보 표시) | netstat의 버전 정보를 출력. |
-w (와이드 출력) | 넓은 출력 형식을 사용하여 더 많은 정보를 한 줄에 표시. |
3. 옵션 조합 및 출력 예제
모든 TCP 연결 표시
# netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:mysql 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:mxit 0.0.0.0:* LISTEN
tcp 0 64 gbminnote.com:mxit 59.15.92.:mni-prot-rout ESTABLISHED
tcp6 0 0 [::]:mysql [::]:* LISTEN
tcp6 0 0 [::]:http [::]:* LISTEN
tcp6 0 0 [::]:ftp [::]:* LISTEN
tcp6 0 0 [::]:https [::]:* LISTEN
tcp6 0 0 [::]:mxit [::]:* LISTEN
숫자로 표시된 UDP 연결과 프로세스 정보
# netstat -unp
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
리스닝 중인 TCP 소켓과 프로세스 정보
# netstat -ltp
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:mysql 0.0.0.0:* LISTEN 932/mariadbd
tcp 0 0 0.0.0.0:mxit 0.0.0.0:* LISTEN 897/sshd
tcp6 0 0 [::]:mysql [::]:* LISTEN 932/mariadbd
tcp6 0 0 [::]:http [::]:* LISTEN 1932/httpd
tcp6 0 0 [::]:ftp [::]:* LISTEN 903/vsftpd
tcp6 0 0 [::]:https [::]:* LISTEN 1932/httpd
tcp6 0 0 [::]:mxit [::]:* LISTEN 897/sshd
네트워크 인터페이스 통계
# netstat -i
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 1913180 0 0 0 532294 0 0 0 BMRU
lo 65536 74532 0 0 0 74532 0 0 0 LRU
연속 출력으로 TCP 연결 모니터링
# netstat -ct
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 64 gbminnote.com:mxit 59.15.92.:mni-prot-rout ESTABLISHED
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 gbminnote.com:mxit 59.15.92.:mni-prot-rout ESTABLISHED
Active Internet connections (w/o servers)
...
UNIX 도메인 소켓과 프로세스 정보
# netstat -xp
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 3 [ ] DGRAM 10499 1/systemd /run/systemd/notify
unix 2 [ ] DGRAM 10501 1/systemd /run/systemd/cgroups-agent
unix 5 [ ] DGRAM 10518 1/systemd /run/systemd/journal/socket
unix 8 [ ] DGRAM 10520 1/systemd /dev/log
unix 2 [ ] DGRAM 1613 1/systemd /run/systemd/shutdownd
unix 3 [ ] STREAM CONNECTED 16581 1/systemd /run/systemd/journal/stdout
unix 3 [ ] STREAM CONNECTED 13612 1/systemd /run/systemd/journal/stdout
unix 3 [ ] STREAM CONNECTED 16765 1/systemd /run/systemd/journal/stdout
unix 2 [ ] DGRAM 13630 675/crond
unix 3 [ ] STREAM CONNECTED 12013 545/systemd-udevd
unix 2 [ ] DGRAM 10177 661/polkitd
unix 3 [ ] STREAM CONNECTED 12162 665/systemd-logind
unix 3 [ ] STREAM CONNECTED 16579 1/systemd /run/systemd/journal/stdout
unix 3 [ ] STREAM CONNECTED 10170 665/systemd-logind
unix 3 [ ] STREAM CONNECTED 16402 666/irqbalance
unix 2 [ ] DGRAM 10976 513/systemd-journal
unix 3 [ ] STREAM CONNECTED 16407 661/polkitd
unix 3 [ ] STREAM CONNECTED 13289 662/dbus-daemon /run/dbus/system_bus_socket
unix 3 [ ] STREAM CONNECTED 16578 897/sshd
unix 3 [ ] STREAM CONNECTED 17511 898/python2
unix 2 [ ] DGRAM 1678 1/systemd
unix 3 [ ] STREAM CONNECTED 24708 1/systemd /run/systemd/journal/stdout
unix 3 [ ] STREAM CONNECTED 1918 638/auditd
unix 3 [ ] STREAM CONNECTED 16409 662/dbus-daemon /run/dbus/system_bus_socket
unix 3 [ ] STREAM CONNECTED 14766 662/dbus-daemon /run/dbus/system_bus_socket
unix 3 [ ] STREAM CONNECTED 13614 1/systemd /run/systemd/journal/stdout
unix 3 [ ] STREAM CONNECTED 10105 1/systemd
unix 2 [ ] DGRAM 11029 545/systemd-udevd
unix 3 [ ] STREAM CONNECTED 13626 1/systemd /run/systemd/journal/stdout
unix 3 [ ] STREAM CONNECTED 11025 1/systemd /run/systemd/journal/stdout
unix 3 [ ] STREAM CONNECTED 13287 662/dbus-daemon
unix 3 [ ] STREAM CONNECTED 16408 662/dbus-daemon /run/dbus/system_bus_socket
unix 3 [ ] STREAM CONNECTED 11023 1/systemd /run/systemd/journal/stdout
unix 2 [ ] DGRAM 449802 25447/sshd: root@pt
unix 3 [ ] STREAM CONNECTED 1919 638/auditd
unix 2 [ ] DGRAM 10164 665/systemd-logind
unix 3 [ ] STREAM CONNECTED 13597 1/systemd /run/systemd/journal/stdout
unix 3 [ ] DGRAM 11043 545/systemd-udevd
unix 3 [ ] STREAM CONNECTED 22816 1932/httpd
unix 3 [ ] STREAM CONNECTED 14763 932/mariadbd
unix 2 [ ] DGRAM 14702 902/rsyslogd
unix 3 [ ] STREAM CONNECTED 17440 675/crond
unix 3 [ ] STREAM CONNECTED 17586 898/python2
unix 3 [ ] STREAM CONNECTED 11965 542/lvmetad
unix 3 [ ] STREAM CONNECTED 13288 662/dbus-daemon
unix 3 [ ] STREAM CONNECTED 14562 662/dbus-daemon
unix 2 [ ] DGRAM 10231 903/vsftpd
unix 3 [ ] DGRAM 11044 545/systemd-udevd
unix 2 [ ] DGRAM 1917 638/auditd
숫자로 표시된 리스닝 소켓과 프로세스 정보
# netstat -nlp
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:3306 0.0.0.0:* LISTEN 932/mariadbd
tcp 0 0 0.0.0.0:9119 0.0.0.0:* LISTEN 897/sshd
tcp6 0 0 :::3306 :::* LISTEN 932/mariadbd
tcp6 0 0 :::80 :::* LISTEN 1932/httpd
tcp6 0 0 :::21 :::* LISTEN 903/vsftpd
tcp6 0 0 :::443 :::* LISTEN 1932/httpd
tcp6 0 0 :::9119 :::* LISTEN 897/sshd
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ACC ] STREAM LISTENING 1553 1/systemd /run/systemd/private
unix 2 [ ACC ] STREAM LISTENING 10515 1/systemd /run/systemd/journal/stdout
unix 2 [ ACC ] SEQPACKET LISTENING 1582 1/systemd /run/udev/control
unix 2 [ ACC ] STREAM LISTENING 10079 1/systemd /run/dbus/system_bus_socket
unix 2 [ ACC ] STREAM LISTENING 1653 1/systemd /run/lvm/lvmetad.socket
unix 2 [ ACC ] STREAM LISTENING 1670 1/systemd /run/lvm/lvmpolld.socket
unix 2 [ ACC ] STREAM LISTENING 15577 932/mariadbd /var/lib/mysql/mysql.sock
netstat 명령어는 옵션이 다양 하기 때문에 옵션을 조합하여 특정 정보를 추출하고 분석할수 있다. 각 상황에 맞게 옵션을 선택하면 네트워크의 다양한 상태를 확인하고 효과적으로 관리할 수 있다.