Netstat으로 사용 중인 포트 확인하기
Netstat으로 사용 중인 포트 확인하기입니다. netstat -ano, findstr, tasklist, Get-NetTCPConnection, 포트 충돌 처리와 원격 확인을 정리했습니다.
Netstat으로 사용 중인 포트 확인하기
Windows에서 특정 포트를 어떤 프로세스가 사용 중인지 확인할 때 netstat -ano를 많이 쓴다. 포트 충돌, 웹 서버 실행 실패, DB 접속 문제를 볼 때 가장 먼저 확인하는 기본 명령이다.
기본 옵션
-a 모든 연결과 수신 대기 포트를 표시
-n 주소와 포트를 숫자로 표시
-o 연결을 소유한 프로세스 ID(PID)를 표시
-b 실행 파일 이름 표시, 관리자 권한 필요전체 포트 확인
netstat -ano출력에서 LISTENING은 해당 포트에서 연결을 기다리는 프로세스가 있다는 뜻이다. ESTABLISHED는 이미 연결된 세션이다.
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1234
TCP 127.0.0.1:5000 0.0.0.0:0 LISTENING 5678특정 포트만 찾기
netstat -ano | findstr ":80"
netstat -ano | findstr ":443"
netstat -ano | findstr ":5000"PID를 찾은 뒤 어떤 프로세스인지 확인한다.
tasklist /fi "PID eq 1234"
Get-Process -Id 1234PowerShell 대체 명령
최근 Windows에서는 Get-NetTCPConnection을 쓰면 객체 형태로 필터링하기 쉽다.
Get-NetTCPConnection -State Listen |
Sort-Object LocalPort |
Select-Object LocalAddress, LocalPort, OwningProcess$port = 5000
$conn = Get-NetTCPConnection -LocalPort $port -State Listen
Get-Process -Id $conn.OwningProcess포트 충돌 처리 순서
netstat -ano로 포트를 쓰는 PID를 찾는다.tasklist또는Get-Process로 프로세스 이름을 확인한다.- 정상 서비스면 애플리케이션 포트를 바꾼다.
- 불필요한 프로세스면 서비스 관리 도구에서 중지한다.
- 원인을 모르는 프로세스는 종료 전에 경로와 서명을 확인한다.
원격 접속 가능 여부 확인
서버에서 포트가 떠 있어도 방화벽이나 라우팅 때문에 다른 PC에서 접속이 안 될 수 있다. 원격 PC에서는 Test-NetConnection으로 TCP 연결을 확인한다.
Test-NetConnection 192.168.10.20 -Port 80
Test-NetConnection devmes.com -Port 443netstat은 오래된 명령이지만 여전히 빠르게 확인하기 좋다. 자동화나 필터링이 필요하면 PowerShell의 네트워크 cmdlet을 함께 사용하면 된다.