Published on

사용중인 포트 종료하기 (Port Kill) - 윈도우

윈도우에서 Port kill 하는 방법

선 3줄 요약

  1. cmd 혹은 powershell 혹은 windows terminal관리자 권한으로 실행 클릭
  2. netstat -a -o 입력, enter 후 나오는 화면에서 0.0.0.0:searchport 찾기
  3. 찾은 프로세스의 PID를 확인하고 taskkill /f /pid PID번호 입력, enter.

로컬에서 개발 작업을 진행하다보면, 가끔 WAS(Web Application Server)간에 포트가 겹치거나 점유 중일때가 있습니다. spring의 8080 포트, react의 3000 포트등이 대표적입니다. 미리 커스텀하여 포트를 설정해 둘수도 있지만, 로컬에서 구동확인만 빠르게 진행할 때는 가끔 발목 잡을 때가 많죠.

윈도우 환경에서 점유중인 포트를 빠르게 죽이는 방법에 대해서 간단히 소개하겠습니다.

먼저, cmd, Windows PowerShell, Terminal 중 하나를 켭니다.

다음으로, 커맨드라인에 netstat -a -o를 입력합니다.

netstat는 network statistics의 줄임말로, 전송 제어 프로토콜, 라우팅 테이블, 수많은 네트워크 인터페이스, 네트워크 프로토콜 통계를 위한 네트워크 연결을 보여주는 명령 줄 도구입니다. 주로, 네트워크의 문제를 찾아내고 성능 측정으로서 네트워크 상의 트래픽의 양을 결정하기 위해 사용합니다..

-a-o는 각각 netstat의 매개변수들로서, 모든 연결과 수신 대기 포트 및 각 연결의 pid(process id)를 표시하라는 옵션입니다. 추가적인 옵션들은 아래의 표로 정리하였습니다.(마이크로소프트 공식 문서 참조)

옵션명령어
-aall, 모든 연결 및 수신 대기 포트를 표시
-b각 연결 또는 수신 대기 포트 생성과 관련된 실행 파일을 표시. 잘 알려진 실행 파일이 여러 독립 구성 요소를 호스팅할 경우 연결 또는 수신 대기 포트 생성과 관련된 구성 요소의 시퀀스가 표시됩니다. 이러한 경우에는 실행 파일 이름이 아래 [] 안에 표시되고 위에는 TCP/IP에 도달할 때까지 호출된 구성 요소가 표시됩니다. 이 옵션은 시간이 오래 걸릴 수 있으며 사용 권한이 없으면 실패합니다.
-e이더넷 통계를 표시. 이 옵션은 -s 옵션과 함께 사용할 수 있습니다.
-f외부 주소의 FQDN(정규화된 도메인 이름)을 표시.
-iTCP 연결이 현재 상태로 지속된 시간을 표시.
-n주소 및 포트 번호를 숫자 형식으로 표시.
-o각 연결의 소유자 프로세스 ID (PID)를 표시.
-p (혹은 proto)proto로 지정한 프로토콜의 연결을 표시. proto는 TCP, UDP, TCPv6 또는 UDPv6 중 하나입니다. -s 옵션과 함께 사용하여 프로토콜별 통계를 표시할 경우 proto는 IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP 또는 UDPv6 중 하나입니다.
-q모든 연결, 수신 대기 포트 및 바인딩된 비수신 대기 TCP 포트를 표시. 바인딩된 비수신 대기 포트는 활성 연결과 연결되거나 연결되지 않을 수도 있습니다.
-r라우팅 테이블을 표시.
-s프로토콜별 통계를 표시. 기본적으로 IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP 및 UDPv6에 대한 통계를 표시. -p 옵션을 사용하여 기본값의 일부 집합에 대한 통계만 지정할 수 있습니다.
-t현재 연결 오프로드 상태를 표시.
-xNetworkDirect 연결, 수신기 및 공유 끝점을 표시.
-y모든 연결에 대한 TCP 연결 템플릿을 표시. 다른 옵션과 함께 사용할 수 없습니다.
interval다음 화면으로 이동하기 전에 지정한 시간(초) 동안 선택한 통계를 다시 표시. 통계 다시 표시를 중지하려면 CTRL+C를 누르세요. 이 값을 생략하면 현재 구성 정보가 한 번만 출력됩니다.

위 netstat 명령어로 찾아낸 점유중인 포트를 죽이는 방법으로는 taskkill 명령어를 활용합니다.