승상의 코딩 블로그

[Linux] netstat 네트워크 상태 모니터링 본문

Linux (리눅스)

[Linux] netstat 네트워크 상태 모니터링

양승상 2024. 12. 2. 22:30
반응형

TCP 연결 종료에 대한 예외처리를 하지 않아서 UI 상에서 연결이 되었다고 뜨는 상황이 종종 발생한다.

당시에 당연히 연결이 된줄 알고 "왜 데이터가 보내지지 않는거지?" 했던 기억이 있다.

프로그램 간에 TCP 연결이 잘되었는지 확인하려면 어떻게 해야할까?

 

* 기업에서는 상용 프로그램을 이외에도 각자의 니즈에 맞는 다양한 프로그램을 개발하기 때문에, 이러한 문제들이 많이 생긴다.

* 개인적으로 많이 경험했다. 

 

단순한 연결되었다는 정보 외에도 프로세스 아이디, 로컬 아이피, 로컬 포트번호, 외부접근 아이피, 외부접근 포트번호도 확인할 수 있다.


명령어

netstat -antp

-a : 모든 연결 상태를 표시 (연결이 되지 않은 리스닝 포트 등)

-t : tcp 연결 표시

-p : 특정 포트를 사용하는 프로그램의 프로세스 아이디를 표시

-u : udp 연결 표시

netstat -antp

Local Address 의 [IP]:[PORT] 를 통해 Local 에서 점유한 아이피와 포트를 확인할 수 있다.

Foreign Address 의 [IP]:[PORT] 를 통해 외부와 연결된 아이피와 포트를 확인할 수 있다.

PID/Program name 을 통해 통신하는 프로세스를 식별할 수 있다.

출력 해석

# 위 사진에서 일부행을 발췌함.
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 192.168.64.8:12345      192.168.64.1:53968      ESTABLISHED 5268/python3

"192.168.64.8:12345 를 점유한 5268번의 아이디를 가진 프로세스(python3)가 192.168.61.1:53968 번과 TCP 연결이 되어있는 상태(ESTABLISHED) 이다." 라고 해석할 수 있다.

반응형
Comments