티스토리 뷰
Server/Windows
[Windows] 사용하지 않는 포트 충돌 해결, Port was already in use (feat.NAT)
종벌🍀 2025. 2. 27. 10:02반응형
윈도우 환경에서 개발하다 보면
출근하여 PC를 부팅 후 아무 것도 하지 않았는데
내 개발 웹 포트가 사용중이라는 메세지를 마주할 때가 있다.
***************************
APPLICATION FAILED TO START
***************************
Description:
Web server failed to start. Port 8080 was already in use.
Action:
Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.
Disconnected from the target VM, address: '127.0.0.1:12179', transport: 'socket'
Process finished with exit code 1
8080 포트를 무언가 사용중인데
8080 포트 자체를 조회 해보면 사용중인 PID 는 존재하지 않는다.
>netstat -ano | findstr :8080
어떠한 프로세스도 해당 포트를 점유하고 있지 않음.
개발관련된 서비스를 모두 재기동 해도 내 웹개발 포트를 점유하고 있어서 사용할 수 없다.
(간단하게 포트를 바꿔버리면 해결 가능하긴 함)
원인은 윈도우 NAT(Network Address Translation) driver 가 어떠한 이유로 포트를 잠가버린 것인데
재부팅 하면 풀릴 수도 있지만 재부팅 하기 귀찮으므로 아래 명령어로 해결하였다.
윈도우 명령프롬프트(cmd) 를 관리자로 실행하고 아래의 명령어를 수행시킨다.
>net stop winnat
>net start winnat
C:\WINDOWS\system32>net stop winnat
Windows NAT Driver 서비스를 잘 멈추었습니다.
C:\WINDOWS\system32>net start winnat
Windows NAT Driver 서비스가 잘 시작되었습니다.
그리고 다시 개발 웹서비스를 구동하면 해당 포트가 사용이 잘 되는 것을 볼 수 있다.
NAT의 주요기능 및 설명
주요 기능
- IP 주소 변환: 내부 네트워크의 개인 IP 주소를 공용 IP 주소로 변환하여 인터넷 접속을 가능하게 합니다.
- 포트 포워딩: 특정 포트의 트래픽을 내부 네트워크의 특정 장치로 전달하여 외부에서 내부 네트워크의 서비스에 접근할 수 있도록 합니다.
- 네트워크 격리: 내부 네트워크를 외부 네트워크로부터 격리하여 보안을 강화합니다.
사용 사례
- 가상 머신 및 컨테이너: Hyper-V, Docker 등의 가상화 환경에서 가상 머신이나 컨테이너가 인터넷에 접속할 수 있도록 winnat이 사용됩니다.
- 인터넷 연결 공유: Windows의 인터넷 연결 공유 기능을 사용하여 하나의 인터넷 연결을 여러 장치와 공유할 때 winnat이 사용됩니다.
- 포트 포워딩: 웹 서버, 게임 서버 등 내부 네트워크에서 실행되는 서비스에 외부에서 접근할 수 있도록 포트 포워딩을 설정할 때 winnat이 사용됩니다.
참고블로그
port 에러 대처 방법 2가지
express로 서버를 구현하는 과정에서 다음과 같은 에러가 떴다. (예시이다.)원인을 살펴보자면1)은 모종의 이유로 port에 대한 접근권한이 거부된 것이었고2)는 이미 해당 port가 사용중인 것이었다.1
velog.io
반응형
댓글