리눅스/윈도우 포트 확인하는 netstat 명령어 정리
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% 활용하기 위해서는 기본적인 네트워크와 소켓통신, 서버단의 지식이 필요하다.
서버관리자가 아니지만, 개발자에게 있어서도 네트워크에 대한 상식은 결코 불가피하다.
꾸준히 찾아보는 수 밖에 없다.
'OS > CentOS Linux' 카테고리의 다른 글
(CentOS) Failed to load SELinux policy, freezing. (0) | 2021.03.12 |
---|---|
리눅스 확장자별 압축 zip, tar, gz(gzip) 차이 및 사용법 (0) | 2021.03.12 |
VirtualBox CentOS7 리눅스 인터넷 연결 안될때 (0) | 2021.03.12 |
CentOS SSH 설치 (0) | 2021.03.12 |
리눅스 파일뷰어(파일읽기,파일보기) 명령어 cat & tail (0) | 2021.03.12 |
리눅스에 Tomcat 설치 (0) | 2021.03.12 |
CentOS CUI / GUI 전환하는 방법 + startx 한글적용 (0) | 2021.03.12 |
Putty - Connection timed out 해결 (2) | 2021.03.12 |