netstat
- 네트워크 연결 상태를 확인하기 위한 명령어이다.
- 주로 네트워크 연결에 대한 정보를 확인하거나 문제를 진단할 때 사용된다.
- 최근에는 netstat 대신 ss 명령어가 권장되고 있다. ss 명령어는 netstat 명령어와 비슷한 기능을 제공하지만, 더 빠르고 간결한 출력 결과를 보여준다.
- -a : 현재 활성화된 모든 연결을 표시한다.
- -n : 숫자 형식으로 IP 주소와 포트 번호를 표시한다.
- -p : 연결을 맺은 프로토콜을 표시한다.
- -r : 라우팅 테이블 정보를 표시한다.
- -s : 각 프로토콜별 통계 정보를 표시한다.
netstat -a (-a 옵션으로 모든 연결 목록을 출력한다)
필드명 | 의미 |
Proto | 사용중인 프로토콜을 표시해주는 필드이다. (Ex. tcp/udp) |
Recv-Q | 수신 소켓 버퍼에 존재하는 바이트 수를 표시해주는 필드이다. |
Send-Q | 송싯 소켓 버퍼에 존재하는 바이트 수를 표시해주는 필드이며 반대편 peer socket에 전송되지 못한 것을 의미 |
Local Address | 로컬 주소 표시 필드 |
Foreign Address | 상대편 주소 표시 필드 |
state | 현재 연결 상태를 표시해 주는 필드 |
netstat -nr (-nr 옵션으로 라우팅 테이블 상태를 출력한다)
- route 명령어를 사용했을 때와 동일한 결과를 출력해준다.
- 기본적으로 -r 옵션만 주어서 출력을 할 수 있지만, -n 옵션을 주어서 호스트 찾기 안 함으로 빠른 결과를 출력할 때 사용한다.
필드명 | 의미 |
Gateway | 라우팅 항목에서의 gateway를 표시한다. |
Genmask | 라우팅 항목의 netmask 를 표시한다. |
Flags/MSS | 라우팅 경로에 관한 여러 플래그를 표시한다. U : 인터페이스가 UP 인 상태 H : 라우팅 경로를 통해 호스트로의 연결 G : 게이트웨이의 라우트 D : 라우트가 재지정되어 동적으로 생성 M : 라우팅 경로가 ICMP 리다이렉트 메시지를 통해 수정되었을 경우 최대 세그먼트 크기 |
Window | 원격에서 한 번에 보내는 데이터의 수신량 |
irtt | initial round trip time 으로, 0은 초기 설정값을 사용한다는 의미 |
Ifce | 네트워크 인터페이스 |
netstat -at (-at 옵션으로 tcp 연결만 모두 출력할 때 사용한다)
netstat -au (-au 옵션으로 udp 연결만 모두 출력할 때 사용한다)
netstat - nl (-nl 옵션을 부여하여 호스트 찾기 안 함으로 빠르게 Listen 인 상태 모두를 출력할 때 사용)
상태를 나타내는 state의 필드 값
필드값 | 의미 |
LISTEN | 연결이 가능하도록 관련 데몬이 떠있으며 연결이 가능함을 의미한다. |
SYN-SENT | 연결을 요청한 상태를 의미한다. |
SYN_RECEIVED | 연결요구에 의한 응답을 준 후에 확인메시지를 기다리고 있는 상태를 의미한다. |
ESTABLISHED | 위의 3단계 연결과정이 모두 종료된 후에 연결이 완료된 상태를 의미한다. |
FIN-WAIT, CLOSE-WAIT, FIN-WAIT2 | 연결 종료를 위해 종료 요청을 받은 후의 종료 과정을 의미한다. |
CLOSING | 전송된 메시지가 유실된 상태를 의미한다. |
TIME-WAIT | 연결종료 후에 한동안 유지하고 있는 상태를 의미한다. |
CLOSED | 연결이 완전히 종료된 상태를 의미한다. |