ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 리눅스/윈도우 포트 확인하는 netstat 명령어 정리
    IT/Linux 2019. 6. 9. 19:14

    1. netstat?

    netstat은 TCP통신을 하는 서비스의 연결상태를 보여준다.

    netstat 명령어는 리눅스와 윈도우 둘다 가능하다. 서로 옵션에서 약간씩 틀림점이 있긴하나 전반적인 사용법은 동일하다.

    netstat을 입력하면 아래와 같은 형식으로 정보가 나열된다.

     

    Proto  Recv-Q  Send-Q  Local Address                Foreign Address              State
    tcp        0       0  X1X.2XX.XX3.2XX:4XXX8       1XX.2XX.1XX.2XX:8XXX         ESTABLISHED
    tcp        0       0  X1X.2XX.XX3.2XX:4XXX8       1XX.2XX.1XX.2XX:8XXX         ESTABLISHED
    

     

     

    예시 설명

     

    Proto : 프로토콜의 종류 (TCP/UDP)

     

    Local Address   : 로컬 (자신) IP와 포트번호, 0.0.0.0 은 특정 아이피와 연결되어 있지 않음을 의미.

     

    Foreign Address   :

    - 상대측 IP와 포트번호, 0.0.0.0 은 아직 통신이 시작되지 않았으며 특정한 IP와 포트가 연결되지 않았음을 의미.

    - UDP프로토콜은 소켓을 상대측의 주소와 포트를 연결하지 않으므로 상대측은 *:* 표시됨.

     

    State

    - LISTENING : 현재 서비스를 대기중 

    - ESTABLISHED : 다른 컴퓨터와 연결된 상태

    - CLOSED : 연결이 완전히 종료된 상태

      - TIME WAIT : 연결은 종료되었지만 당분간 소켓은 열어놓은 상태

     

    Send-Q, Recv-Q

        - 보내고 받는 패킷의 socket buffer size

        - data 송/수신할때 크기가 변하게 됨

        - Recv-Q : 전송받은 bytes중 아직 처리 못하고 recv()하고 있는 상태의 data RNXT – RACK 

        - Send-Q : send() 되었으나 아직 전송되지 못하고 대기하고 있는 상태 SNXT – SUNA 

     

     

     

     


    2. 옵션 설명

     

    - a 옵션 : --all과 같으며 listen되는 소켓정보와 listen되지 않는 소켓정보 모두를 보여줌.

     

    - n 옵션 : --numeric과 같으며 10진수의 수치정보로 결과를 출력해줌.

     

    - r 옵션 : --route과 같으며 설정된 라우팅정보를 출력해줌

     

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

     

    - i 옵션 : --interface=iface과 같으며 모든 네트워ㅡ인터페이스정보를 출력함. 또는 특정 네트워크인터페이스를 지정할 수도 있음.

     

    - c 옵션 : --continuous과 같으며 netstat결과를 연속적으로 출력함.

     

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

     

    - s 옵션 : --statistics과 같으며 각 프로토콜에 대한 통계정보를 출력

     

    - t 옵션 : --tcp와 같으며 tcp 정보를 출력

     

    - u 옵션 : --udp와 같으며 udp 정보를 출력

     

     

     

     


    3. 옵션활용

     

    netstat -an 으로 입력하면

    '모든' 소켓정보를 '10진수로 변환' 해서 출력한다.

     

    netstat -ntlp 으로 입력하면

    'tcp정보' 중에서 'listening' 상태인 소켓의 정보를 '10진수'로 변환하여 보여주며 실행되고 있는 '프로그램과 PID정보'를 출력한다.

     

    이와같이 위 옵션의 설명을 잘 활용하면 원하는 정보를 출력할 수 있다. 

    그러나 netstat의 정보를 정확하게 이해하고 100% 활용하기 위해서는 기본적인 네트워크와 소켓통신, 서버단의 지식이 필요하다.

    서버관리자가 아니지만, 개발자에게 있어서도 네트워크에 대한 상식은 결코 불가피하다.

    꾸준히 찾아보는 수 밖에 없다.

     

     

    ------------------------끗-------------------------

     

     

     출처 : http://idchowto.com/?p=13190

    출처 : https://m.blog.naver.com/PostView.nhn?blogId=woomun&logNo=140183762108&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F

    댓글

다치지 말고 운동하자.