본문 바로가기

IT인생_스터디/Linux

[리눅스 시스템] 리눅스 netstat 명령어 사용하기


리눅스 netstat 명령어 사용하기

 

1. netstat 명령어로 알수 있는 내용

    * 어떤 클라이언트와 연결되어 있는가?

    * 어떤 서비스 (www, ftp, ssh, mysql 등)들로 연결되어 있는가?

    * 어떤 포트 (Port)번호로 연결되어 있는가?

    * 연결상태 (wait, listen, connect 등)는 어떠한가?

    * 네트워크 연결상태가 어떻게 되어 있는가?

    * 기본 게이트웨이의 설정이 제대로 되어 있는가?

    * route에서 처럼 라우팅 경로는 어떠한가?

 

2. netstat 명령어의 주요 옵션

    * -a : --all 과 같으며, listen 되는 소켓정보와 listen 되지 않는 소켓 정보를 모두 출력

    * -n : --numberic 과 같으며, 10진수의 수치 정보로 결과를 출력

    * -r : --route 와 같으며, 설정된 라우팅 정보를 출력

    * -p : --program 과 같으며, 실행되고 있는 각 프로그램과 PID 정보를 출력

    * -i : --interface=iface 와 같으며, 모든 네트워크 인터페이스 정보를 출력

                  또는, 특정 네트워크 인터페이스를 지정할 수도 있음

    * -c : --continuous 와 같으며, netstat 결과를 연속적으로 출력

    * -l : --listening 과 같으며, 현재 listen 되고 있는 소켓 정보를 출력

    * -s : --statistics 와 같으며, 각 프로토콜에 대한 통계 정보를 출력

 

    2.1. 예제

 

    #netstat -rn    --> 라우팅 테이블 출력

 

 

3. netstat 명령의 실행결과로 출력되는 State 항목 값

    * 비어있음 : 연결되어 있지 않음

    * FREE : 소켓은 존재하지만 할당되어 있지 않음

    * LISTENING : 외부 연결요구에 응답준비가 되어 있는 상태

    * CONNECTING : 연결이 막 이루어진 상태

    * DISCONNECTING : 연결 해제되고 있는 상태

    * UNKNOWN : 알 수 없는 연결 즉, 알려지지 않은 연결상태

    * LISTEN : 연결 가능하도록 관련 데몬이 떠 있으며 연결이 가능함을 나타냄

    * SYS-SENT : 연결을 요청한 상태

    * SYN_RECEIVED : 연결 요구에 응답을 한 후에 확인 메시지를 기다리고 있는 상태

    * ESTABLISHED : 앞의 3단계 연결 과정이 모두 종료된 후에 연결이 완료된 상태

    * FIN-WAIT1, CLOSE-WAIT, FIN-WAIT2 : 연결 종료를 위해 종료 요청을 받은 후의 종료 과정임

    * CLOSING : 전송된 메시지가 유실된 상태

    * TIME-WAIT : 연결 종료 후에 한 동안 유지하고있는 상태

    * CLOSED : 연결이 완전히 종료됨

 

    3.1. 예제

 

        #netstat -an |grep LISTEN

 

    #netstat -an |grep 192.168.108.130

 

    #netstat -atp    --> 열려진 포트를 사용하고 있는 프로세스 확인하는 방법