본문 바로가기

OS/Windows

열려있는 포트를 확인하는 netstat 사용 방법

Windows에서 열려 있는 포트를 확인해야 할 때가 가끔 발생한다. 가령 서버를 띄워 개발 테스트를 하다가 종료가 제대로 안 되어서 프로세스가 남아 있는지 실행이 안 될 때 확인하거나 아니면 보안을 위해서 오픈되어 있는 포트를 확인할 때라든지 간간히 명령어를 사용하게 된다. 근데 잘 안 쓰다보니 자꾸 잊어먹어서 포스팅을 통해 기록을 남긴다.

일단 단순히 목록을 쭉 뿌려주고 싶을 때 사용하는 명령어는 다음과 같다.

netstat -an

그러면 아래와 같이 오픈되어 있는 모든 포트를 보여준다.

이렇게 실행하면 포트 전체를 알 수는 있지만 내가 관심 있는 포트를 찾아서 보기는 좀 불편하다. 그래서 linux의 grep과 같은 기능의 findstr 명령어를 파이프를 통해 실행하면 편하게 해당 포트만 볼 수 있다. 아래와 같이 명령어를 입력해보자.

netstat -ano | findstr [포트]

참고로 findstr은 아까 언급했듯이 grep과 비슷한 기능을 가지고 있다. 그래서 netstat 말고도 다른 곳에서도 사용할 수 있다. 아래는 ipconfig를 findstr 통해 걸러낸 텍스트만 나오게 해본 스샷이다.

 

그럼 이제 특정 포트를 보고 오픈되어 있는지 확인할 수도 있지만 어떤 프로그램이 그 포트를 오픈했는지 확인해보고 싶을 때가 있다. 이럴 땐 tasklist 명령어를 사용하면 된다. 아래 명령어처럼 사용하면 되는데 [PID]에 들어가는 부분은 netstat을 사용할 때 추가로 옵션을 oㄹㅡㄹ 넣어서 나오는 PID를 사용하면 된다. 아래 스샷에 보면 1188, 0, 7128, 1188이 그 PID이다.

tasklist /FI "PID eq [PID]"

tasklist에 대한 자세한 내용은 https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/tasklist를 참고하면 된다.


shell응용 추가할 예정.