[CentOS] netstat 사용 포트 확인

리눅스 환경에서 netstat 명령어를 사용하여 네트워크 정보를 확인하는 방법에 대해 알아보겠습니다.

netstat 란

netstat는 전송 제어 프로토콜, 라우팅 테이블, 수많은 네트워크 인터페이스, 네트워크 프로토콜 통계를 위한 네트워크 연결을 보여주는 명령 줄 도구이다. 위키백과

netstat는 네트워크 관련한 정보를 보는 유틸리티로 오래전부터 Unix 계열의 운영체제에서 사용되어 왔으며 현재 LISTEN 중인 포트, 모든 내외부/연결 정보 등을 확인할 수 있습니다.

자주 사용하는 netstat 옵션

  • -a : 모든 소켓보기, 이 옵션이 없으면 상태가 ESTABLISHED 인 것만 나옵니다. --all 옵션과 동일합니다.
  • -n : 도메인 주소를 읽어들이지 않고 숫자로 출력합니다.
  • -p : PID(프로세스 ID) 와 사용 중인 프로그램명이 출력됩니다.

netstat 옵션

  • -c : 현재 실행 명령을 매 초마다 실행
  • -l : listen 하고 있는 포트만 보여줌
  • -i : 내트워크 트래픽정보 모니터링
  • -t : tcp 로 연결된 내용 출력
  • -u : udp 로 연결된 내용 출력
  • -r : 라우팅 테이블을 출력
  • -s : 프로토콜별 통계 정보

netstat State

  • LISTEN : 서버에 프로세스가 실행되어 있으며 클라이언트의 접속 요청을 기다리는 상태
  • ESTABLISED : 서버와 클라이언트간에 세션 연결이 성립되어 통신이 이루어지는 상태
  • CLOSE_WAIT : TCP 연결이 상위 레벨로부터 연결 종료를 기다리는 상태
  • TIME_WAIT : 연결은 종료 되었지만 특정시간 동안 소켓을 열어놓은 상태
  • CLOSE : 연결이 종료된 상태

모든 소켓 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ netstat -a

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:wap-wsp 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:vrace 0.0.0.0:* LISTEN
tcp 0 0 localhost.locald:domain 0.0.0.0:* LISTEN
...
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ] DGRAM 41808 @000f7
unix 2 [ ACC ] STREAM LISTENING 46336 @/tmp/.ICE-unix/2446
unix 2 [ ACC ] STREAM LISTENING 40451 /var/run/docker/metrics.sock
unix 2 [ ACC ] STREAM LISTENING 42868 @/tmp/dbus-i51dyYJlx0
...

TCP 포트 목록

특정 문자열이 포함된 포트를 확인할 수 있습니다. 다음의 예시는 0 0.0.0.0 또는 0 ::: 문자열이 포함된 TCP 포트 목록을 출력하는 명령어입니다.

1
2
3
4
5
6
7
8
9
10
$ netstat -nlpt | egrep "0 (0.0.0.0|:::)"
or
$ netstat -anp | grep ^tcp | egrep "0 (0.0.0.0|:::)"

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 951/sshd
tcp 0 0 :::22 :::* LISTEN 951/sshd
tcp6 0 0 :::8080 :::* LISTEN 6959/java
tcp6 0 0 :::8009 :::* LISTEN 6959/java
tcp6 0 0 :::3306 :::* LISTEN 2025/mariadbd
...

포트 & 프로세스 목록

LISTEN 중인 포트 및 프로세스명만 확인하려면 다음과 같은 명령을 사용합니다.

1
2
3
4
5
6
7
$ netstat -anp | grep "LISTEN " | grep -v 127.0.0.1 | sed 's/:::/0 /g' | sed 's/[:\/]/ /g' | awk '{print $5"\t"$10}' | sort -ug

22 sshd
8009 java
8080 java
3306 mysqld
...
Share