nestat에 대하여 알아보자
참고: http://docs.oracle.com/cd/E26925_01/html/E25873/ipconfig-142.html
오늘은 nestat 에 대하여 설명하고자 한다.
필자는 서버 점검을 할때 nestat 명령어를 통하여 네트워크 상태를 확인하고자 사용하는데
netstat의 다양한 옵션 값을 명확하게 알고 사용한다면 서비스 관리에 유용하게 사용할 수 있을 것이라 생각된다 .
1. netstat 기능
netstat 사용 용도는 이러하다.
- 라우팅 테이블 확인
- 프로토콜 서비스된 통계
- 열려져 있는 포트 및 서비스 중인 프로세스들의 상태 정보와 네트워크 연결 상태
알아 보기 위해 사용한다.
* 라우팅 테이블 : 라우터나 기타 다른 인터네트워킹 장치에 저장되어있는 데이터베이스로서 네트웍 상의 특정 목적지까지의 경로를 계속적으로 저장하기 위해 사용됨
2. netstat 사용법 및 옵션기능
먼저 사용법은 아래와 같다.
[사용법]
netstat [-a] [-l] [-r] [-n] [-c] [-p 프로토콜] [-t] [-u]
[] 쳐져 있는 것들은 netstat의 옵션 값이다 .
옵션 |
기능 |
-a |
모든 연결 및 수신 대기 포트를 표시 |
-c |
현재 실행 명령을 매 초마다 실행 |
-l |
리슨하고있는 포트를 보여줌 |
-t |
tcp로 연결된 포트를 보여줌 |
-u |
udp로 연결된 포트를 보여줌 |
-n |
주소나 포트 형식을 숫자로 표현 |
-p [ 프로토콜 ] |
해당 프로세스를 사용하고 있는 프로그램이름을 보여줌 |
-r |
라우팅 테이블을 보여준다. |
3. 자주사용하는 netstat 사용법 (예제)
1. 네트워크 연결상태
netstat -an
LISTEN 된 포트와 그렇지 않은 포트를 확인할 때 아래와 같이 사용함
* proto : 현재 사용한 프로토콜
* local address : 사용자 컴퓨터의 호스트 네임 또는 ip와 포트번호
* foreign addess : 사용자와 접속되어있는 사이트, 컴퓨터의 호스트 네임 또는 ip 와 포트번호
* state : 접속 상태 ( 맨 하단에 자세하게 설명되어있음)
2. 프로토콜 서비스된 통계
netstat -p[프로토콜]
3. 라우팅 테이블 확인
netstat -ar
4. state 값 알아보기
상태 |
내용 |
LISTEN | 요청을 받을 수 있도록 연결 요구를 기다리는 상태 즉, 포트가 열려있음 WINDOWS에는 LISTENING으로 나타남 |
ESTABLISHED |
서로 연결되어있는 상태 ( SYN -> SYN/ACK -> ACK ) 가 완료된 상태 |
SVN_SENT |
클라이언트가 서버에게 SYN패킷을 보낸 후 연결을 요청한 상태 |
SVN_RECV |
서버가 클라이언트의 SYN패킷으로 서비스를 요청 받은 후에 이에대한 응답으로 SYN/ACK패킷을 보내고 클라이언트에게 ACK를 받기를 기다리는 상태 |
TIME_WAIT |
연결은 종료되었으나 원격의 우신보장을 위해 기다리고 있는 상태 |
CLOSE_WAIT |
원격의 연결 요청을 받고 연결이 종료되길 기다리는 상태 |
LAST_ACK |
연결이 종료되었고 승인을 기다리는 상태 |
CLOSED |
완전히 연결이 종료된 상태 |
5. 참고자료
* connection
* close
추가 : 곧바로 close 되는 것이 아니라 time wait 상태를 거치고 일정 시간(1분~4분)동안 유지한다.
그 이유는 TCP는 신뢰성을 보장해 주기위한 프로토콜로서 연결시에도 종료시에도 복잡한 과정을 거쳐 서로가 CLOSE된 것을 확인하고자 그렇게 만들엇다.
만일 시스템에 설정된 양보다 많은 CLOSE 요청이 들어온다면 TIME_WAIT하는 세션들이 필요이상으로 많아진다.
그럴때는
1. tcp_timewait 수치를 확인하고 변경해준다.
일반적으로 대량 요청이 발생한다면 10초 정도로 맞춰주는 것이 권장값이다.
재부팅시에도 이 값을 유지하고 싶다면
/etc/sysctl.conf 에
net.ipv4.tcp_fin_timeout = 10
을 적어주면 재부팅시에도 timewait 수치 값을 유지할 수 있다.
2. 재부팅해준다. (강제로 연결을 다 끈어버리는 듯)
찾아본 바에 의하면 2가지 방법이 있는 듯하다.
'컴퓨터 공부 > 기타 ' 카테고리의 다른 글
apache2 + tomcat 6.0 연동하는 방법 배워보기!(다중연동) (0) | 2015.08.05 |
---|---|
JSONP의 기능 및 예제 (1) | 2015.04.17 |
[기타] font-face사용법 및 eot,woff폰트파일 변경방법 (2) | 2013.01.31 |
[기타] FTP과 NCFTP사용법 (0) | 2013.01.09 |
[기타] FTP데몬과 NCFTP 설치법의 차이점 (0) | 2013.01.09 |