gbmin's Tech Notes

서버 구축 및 유지보수, 클라우드 컴퓨팅, 네트워크 보안, IT 분야 기술 노트. :)

Tech Notes/Tools & Command

[Linux command] netstat 명령어 사용법 및 예제

gbmin 2023. 8. 13. 22:26

netstat은 "network status"의 약자로, 네트워크 연결, 라우팅 테이블, 인터페이스 상태 등을 보여주는 명령줄 도구다. 대부분의 운영 체제에서 사용할 수 있으며, 네트워크 연결 확인, 조회, 인터페이스 상태 등을 확인할 수 있으며 네트워크 문제의 진단과 분석에 매우 유용하다. 이 글은 리눅스 기준으로 작성되었다.

 


[목차]

1. netstat 명령어 기본 사용법

2. netstat 주요 옵션

3. 옵션 조합 및 출력 예제


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 명령어는 옵션이 다양 하기 때문에 옵션을 조합하여 특정 정보를 추출하고 분석할수 있다. 각 상황에 맞게 옵션을 선택하면 네트워크의 다양한 상태를 확인하고 효과적으로 관리할 수 있습니다.