Windows 10에서 netstat으로 현재 열려 있는 포트와 연결 상태를 확인하는 방법

안녕하세요. 일본서버, 미국서버 호스팅 전문 지구 IDC 기술팀입니다.

오늘은 Windows 10에서 netstat 명령으로 현재 열려 있는 포트와 TCP·UDP 연결 상태를 확인하는 방법을 알아보겠습니다. 특정 서비스가 실제로 포트를 열고 있는지, 외부 서버와 어떤 연결이 생성되어 있는지, 해당 연결을 어느 프로세스가 사용하고 있는지 확인할 때 netstat를 사용할 수 있습니다.

이 문서에서는 netstat -ano를 기준으로 수신 대기 포트, 활성 연결, PID를 확인하고 tasklist로 실제 프로세스를 식별하는 방법까지 설명합니다. 또한 LISTENING, ESTABLISHED, TIME_WAIT, CLOSE_WAIT 같은 TCP 상태의 의미와 특정 포트만 검색하는 방법도 함께 살펴보겠습니다.

적용 환경

문서 적용 기준
항목 내용
운영체제 Windows 10
사용 도구 netstat, tasklist, 명령 프롬프트
권한 대부분의 조회는 일반 권한에서도 가능하지만 -b 옵션은 관리자 권한이 필요할 수 있음

netstat로 확인할 수 있는 정보

netstat는 Windows에서 현재 활성화된 TCP 연결과 수신 대기 포트, UDP 포트, 로컬·원격 주소, 연결 상태, 프로세스 ID 등을 확인할 수 있는 기본 명령입니다.

  • 현재 컴퓨터가 수신 대기 중인 TCP 포트
  • 열려 있는 UDP 포트
  • 현재 외부 시스템과 연결된 TCP 세션
  • 로컬 IP와 로컬 포트 번호
  • 원격 IP와 원격 포트 번호
  • TCP 연결 상태
  • 해당 연결을 생성한 프로세스의 PID

현재 TCP 연결 상태 확인

명령 프롬프트를 열고 옵션 없이 netstat를 실행하면 현재 활성화된 TCP 연결을 확인할 수 있습니다.

netstat

주소와 포트 이름을 해석하지 않고 숫자로 바로 확인하려면 -n 옵션을 사용합니다.

netstat -n

Microsoft 문서에 따르면 -n 옵션은 IP 주소와 포트 번호를 이름으로 변환하지 않고 숫자 형태로 표시합니다.

열려 있는 모든 포트와 PID 확인

Windows에서 포트 점유 상태를 확인할 때 가장 많이 사용하는 명령은 다음과 같습니다.

netstat -ano
옵션 의미
-a 활성 TCP 연결과 수신 대기 중인 TCP·UDP 포트를 모두 표시
-n 주소와 포트 번호를 숫자로 표시
-o 각 연결을 소유한 프로세스의 PID를 함께 표시

TCP만 확인하려면 다음 명령을 사용합니다.

netstat -ano -p tcp

UDP 포트만 확인하려면 다음 명령을 사용합니다.

netstat -ano -p udp

UDP는 TCP처럼 연결 상태를 유지하지 않으므로 일반적으로 LISTENING이나 ESTABLISHED 같은 상태 열이 표시되지 않습니다.

수신 대기 중인 TCP 포트만 확인

현재 연결 요청을 기다리고 있는 TCP 포트만 확인하려면 LISTENING 상태를 필터링합니다.

netstat -ano | findstr LISTENING

예를 들어 다음과 같은 항목이 보인다면 TCP 3389번 포트를 PID 1234 프로세스가 수신 대기 중이라는 의미입니다.

TCP    0.0.0.0:3389    0.0.0.0:0    LISTENING    1234

이 상태는 해당 포트가 로컬에서 열려 있다는 의미이지만 Windows Defender 방화벽이나 상위 방화벽이 외부 접근을 허용한다는 뜻은 아닙니다.

특정 포트만 검색하는 방법

예를 들어 TCP 3389번 포트가 사용 중인지 빠르게 확인하려면 다음과 같이 검색할 수 있습니다.

netstat -ano | findstr ":3389"

이 방법은 로컬 포트뿐 아니라 원격 포트에 3389가 포함된 연결도 함께 표시할 수 있으므로 Local Address와 상태를 같이 확인해야 합니다.

수신 대기 중인 TCP 3389번 포트만 좁혀 확인하려면 다음과 같이 사용할 수 있습니다.

netstat -ano -p tcp | findstr /R /C:":3389 .*LISTENING"

PID로 실제 프로세스 확인

netstat -ano의 마지막 열에 표시되는 숫자는 PID입니다. 예를 들어 PID가 1234라면 다음 명령으로 프로세스 이름을 확인합니다.

tasklist /FI "PID eq 1234"

svchost.exe처럼 하나의 프로세스가 여러 Windows 서비스를 호스팅한다면 서비스 목록까지 확인합니다.

tasklist /svc /FI "PID eq 1234"

실행 파일까지 한 번에 확인하는 방법

-b 옵션은 각 연결 또는 수신 포트를 생성한 실행 파일을 표시합니다. 관리자 권한으로 명령 프롬프트를 실행한 뒤 다음 명령을 사용할 수 있습니다.

netstat -abno

Microsoft는 -b 옵션이 실행 파일을 표시하지만 시간이 오래 걸릴 수 있으며 충분한 권한이 없으면 실패할 수 있다고 안내합니다.

TCP 연결 상태 해석

자주 확인하는 TCP 상태
상태 의미 확인 포인트
LISTENING 로컬 서비스가 연결 요청을 기다리는 상태 서비스가 실제로 포트를 열었는지 확인
ESTABLISHED TCP 연결이 정상적으로 성립된 상태 어떤 원격 IP와 실제 연결되어 있는지 확인
SYN_SENT 연결 요청을 보낸 뒤 응답을 기다리는 상태 지속되면 원격 서버·방화벽·네트워크 경로 점검
SYN_RECEIVED 연결 요청을 받은 뒤 최종 확인을 기다리는 상태 대량으로 지속되면 비정상 연결 시도 여부 추가 점검
TIME_WAIT 종료된 TCP 연결이 일정 시간 유지되는 상태 짧은 연결이 많은 시스템에서는 정상적으로 다수 발생 가능
CLOSE_WAIT 상대는 종료했지만 로컬 애플리케이션이 소켓 종료를 완료하지 않은 상태 특정 PID에서 누적되면 애플리케이션 점검
FIN_WAIT_1, FIN_WAIT_2 TCP 연결 종료 절차 진행 중 일시적이면 정상, 장시간 대량 유지 시 추가 확인

Local Address와 Foreign Address 해석

Local Address는 현재 Windows 시스템의 IP 주소와 포트이며, Foreign Address는 연결된 원격 시스템의 주소와 포트입니다.

표시 예 의미
0.0.0.0:80 모든 IPv4 인터페이스에서 80번 포트를 수신하도록 바인딩
127.0.0.1:3306 로컬 컴퓨터에서만 접근 가능한 루프백 주소에 바인딩
[::]:443 IPv6 모든 주소에서 443번 포트를 수신하는 형태

서비스가 127.0.0.1에만 바인딩되어 있다면 다른 컴퓨터에서는 해당 포트로 직접 접속할 수 없습니다. 외부 접속이 필요한 서비스라면 애플리케이션의 바인딩 주소와 Windows Defender 방화벽 규칙을 함께 확인해야 합니다.

자주 발생하는 상황과 확인 방법

상황 확인 방법 다음 조치
서비스를 시작했는데 포트가 보이지 않음 netstat -ano | findstr LISTENING 서비스 상태, 로그, 설정 포트와 바인딩 주소 확인
포트가 이미 사용 중이라는 오류 발생 netstat -ano | findstr ":포트번호" 후 PID 확인 tasklist로 점유 프로세스를 식별
LISTENING인데 외부에서 접속되지 않음 Local Address와 Windows 방화벽 확인 127.0.0.1 바인딩, 인바운드 규칙, 상위 방화벽 점검
TIME_WAIT가 많이 보임 원격 주소와 해당 서비스 확인 정상 단기 연결인지 먼저 판단하고 수량만으로 장애 단정 금지
CLOSE_WAIT가 특정 PID에 계속 누적됨 PID를 tasklist로 식별 애플리케이션의 소켓 종료 처리와 서비스 로그 점검

관련 지구 IDC 기술자료

공식 참고자료

기관 문서 확인 내용 조회일
Microsoft netstat -a, -b, -n, -o, -p 옵션과 출력 필드
Microsoft tasklist PID 필터와 프로세스·서비스 조회
Microsoft TCPSTATE enumeration TCP 연결 상태 의미
Microsoft Windows 10 지원 종료 Windows 10 일반 지원 종료일 확인

자주 묻는 질문

netstat에서 LISTENING이면 외부에서도 접속할 수 있다는 뜻인가요?

아닙니다. LISTENING은 Windows의 로컬 소켓이 연결 요청을 기다리고 있다는 뜻입니다. Windows Defender 방화벽, 공유기 포트포워딩, IDC 방화벽, 클라우드 보안 그룹 등에서 외부 접근이 차단될 수 있습니다.

0.0.0.0:포트와 127.0.0.1:포트의 차이는 무엇인가요?

0.0.0.0은 일반적으로 모든 IPv4 인터페이스에서 해당 포트를 수신하도록 바인딩된 상태를 의미합니다. 127.0.0.1은 로컬 루프백 주소이므로 같은 컴퓨터 내부에서만 직접 접근할 수 있습니다.

TIME_WAIT가 많이 보이면 DDoS 공격인가요?

반드시 그렇지는 않습니다. TIME_WAIT는 정상적인 TCP 연결 종료 과정에서도 발생합니다. 원격 IP 분포, 연결 증가 속도, CPU·네트워크 사용량을 함께 확인해야 합니다.

netstat에서 확인한 PID가 svchost.exe라면 어떤 서비스인지 어떻게 확인하나요?

tasklist /svc /FI "PID eq PID번호" 명령을 사용하면 해당 svchost.exe 프로세스에서 호스팅되는 Windows 서비스를 확인할 수 있습니다.

UDP 포트에는 왜 LISTENING 상태가 표시되지 않나요?

UDP는 TCP처럼 연결을 설정하고 상태를 유지하는 프로토콜이 아닙니다. 따라서 netstat -ano -p udp에서는 로컬 주소와 PID를 확인할 수 있지만 TCP의 LISTENING, ESTABLISHED 같은 상태는 표시되지 않습니다.

마무리

오늘은 Windows 10에서 netstat을 사용해 현재 열려 있는 포트, 활성 TCP 연결, 연결 상태와 PID를 확인하는 방법을 설명드렸습니다. 서버 점검에서는 우선 netstat -ano로 전체 상태를 확인하고, 필요한 포트만 findstr로 좁힌 뒤 tasklist로 실제 프로세스를 확인하면 빠르게 원인을 파악할 수 있습니다.

LISTENING 상태라고 해서 외부 접속까지 자동으로 허용되는 것은 아니므로 서비스의 바인딩 주소와 Windows 방화벽, 상위 네트워크 정책을 함께 확인하시기 바랍니다.

지구 IDC는 일본서버와 미국서버를 포함한 다양한 서버 호스팅 환경에서 안정적인 운영에 도움이 되는 기술정보를 지속적으로 제공하겠습니다.

  • 0 사용자에게 유용한 정보 제공
이 답변이 도움이 되었나요?
« Back