You cannot see this page without javascript.

메뉴 건너뛰기

WHKorea

OS netstat

구피천사 2020.02.05 10:58 조회 수 : 110

1.netstat

 

netstat 명령어는 자신의 컴퓨터와 연결된 모든 네트워크 연결을 보여주는 명령어입니다.
원도우와 리눅스 둘다 존재하는 명령어입니다.

 

2.사용방법

 

window

 

netstat -nao | findstr "LISTEN"

현재 local컴터에 열린 포트를 보여준다. tcp/udp 보여준다.

 

netstat -nap [tcp|udp] | findstr "LISTEN"

현재 local컴터에 열린 포트를 보여준다. tcp혹은 udp 만 보여준다.

 

netstat -nao | find "80"

-현재 local컴터에 80포트로 접속한 ip를 보여준다.

 

netstat -nao | find "122:80"

 

netstat -nao | find "특정아이피:80"

현재 local컴터에 80포트로 특정아이피가 접속한 리스트를 보여준다.

 

netstat -nao | find "80" /c

 

netstat -nao | find "특정아이피:80" /c

현재 local컴터에 80포트로 접속한 리스트의 수를 보여준다.

 

linux

 

netstat -na

해당 컴퓨터에 연결된 컴터의 ip와 열려진 port와 protocal 타입이 나옵니다.

 

netstat -nap

해당 컴퓨터에 연결된 컴터의 ip와 열려진 port와 실행되는 데몬명(SID)과 protocal 타입이 나옵니다

 

netstat -nao | grep ESTABLISHED

local컴퓨터에 접속한 IP 리스트가 보입니다.

 

netstat -na | grep LISTEN

local컴퓨터의 tcp/udp 열린 포트가 보입니다.

 

netstat -nau | grep LISTEN

local컴퓨터의 열린  udp 방식 포트가 보입니다.

 

netstat -nat | grep LISTEN

local컴퓨터의 열린 tcp 방식 포트가 보입니다.

 

netstat -nao | grep 80

현재 local컴퓨터에 80포트로 접속한 ip를 보여준다.

 

netstat -nao | grep 특정아이피:80

현재 local컴퓨터에 80포트로 특정아이피가 접속한 리스트를 보여준다.

 

netstat -natp

loca컴퓨터의 열린 포트의 프로세서명까지 알수있다

 

netstat -n|grep -F :80|egrep '(ESTAB|SYN)'|awk '{print $5}'|sed 's/:[0-9]*//'|sort -u|wc -l

# 해당 포트의 접속상황을 가지고 동시접속자를 체크하는 방법

 

※netstat 의 status는 현재 상태이며 ESTABLISHED는 연결되어있는 상태를 말하며 CLOSED는 이미 연결이 끊어졌음을 말한다.

LISTENING은 현재 시스템에서 열려있는 포트며 연결을 기다리는 포트입니다.

 

 

3.해당 port사용하는 프로그램 종료하기

 

Windows

 

netstat -nao | findstr LISTEN 로 열린 포트를 확인한후 해당 포트가 어떤 프로그램에서 실행되는지 알려면 PID값을 기억한후

tasklist | findstr "pid" 이나 으로 해당 프로그램명을

알아내어 보안에 위반되는 프로그램이면 window작업관리자에서 해당 프로세서를 죽입니다.

 

 

※tasklist는 현재 컴터에서 돌아가는 프로그램명과 메모리사용량,PID가 나옵니다.

 

Unix or Linux

 

ps -ef | grep 프로세스명 또는 pid

설명

현재 실행되고 있는 프로세서중에서 프로세스명 만을 검색하여 정보를 출력한다.

출력 항목

출력 항목은 실행시킨소유자, pid, ppid, 점유율, 실행했을때의 시간, 실행되고 있는 시간, 실행파일명(위치) 순이다.

ex : nobody   26673  3615  0  05:00  00:00:12 /usr/sbin/apache

안나오는 항목

CPU점유율과 MEM점유율은 안나온다.

사용 예제

ps -ef | grep mysql

ps -ef | grep apache

 

 

※ pid 는 현재 시스템에서 유일한 프로세스 아이디이며 ppid 는 부모 프로세스 아이디이다.

 

 

 

ps -ef 와 ps -e 의 차이점

ps -ef 는 검색 프로세서가 없어도 최소 한개의 검색결과는 나오지만 ps -e 는 검색프로세서가 없으면 검색결과가 아무것도 나오지 않는다.

 

ps auxw|more

# ps -ef 보다 자세하게 나오며 CPU, MEM 점유율이 추가되어 나온다.

 

"ps auxw|more" 결과에서 나오는 STAT 항목의 종류와 의미

----------------------------------------------------
부호         의   미
----------------------------------------------------
R    수행 가능/수행중
T    일시 정지
P    페이지인을 기다림
D    디스크 입출력 대기 같은 인터럽트 할 수 없는 대기중
S    20초 미만의 짧게 잠듦
I    20초 이상의 길게 잠듦
Z    좀비 프로세스
----------------------------------------------------

 

pid 값을 이용해 실행중인 프로세서 죽이기

"kill pid값" 명령을 하게 되면 해당 pid값에 해당하는 프로세서가 종료된다.

※ 위의 명령으로 제대로 종료가 안되면 "kill -9 sid값" 과같이 -9 옵션을 붙여 다시 실행한다.

ex : kill -9 pid값

 

 

 

위로