문제 상황
- express로 서버를 구현하는 과정에서 다음과 같은 에러가 떴다. (예시이다.)
1) Error: listen EACCES: permission denied 127.0.0.1:4200
2) Error: listen EADDRINUSE: address already in use :::5000
- 원인을 살펴보자면
1)은 모종의 이유로 port에 대한 접근권한이 거부된 것이었고
2)는 이미 해당 port가 사용중인 것이었다.
해결 방법
- 1)의 경우, 구글링을 해보니, windows nat driver에서 문제가 발생하여, 포트 접근이 잠겨서 발생한 것이라 한다. 그래서 nat driver를 종료해서 다시 실행시키는 방식으로 해결했다. 관련 코드는 다음과 같다.
cmd에서 관리자 모드로 실행
net stop winnat
net start winnat
- 2)의 경우, 해당 port가 사용중인지를 먼저 파악한 뒤, 해당 port를 실행하고 있는 PID를 파악해서, 이를 작업관리자에서 강제종료한 뒤, 다시 port에 접근하는 방식으로 해결했다. port 사용 여부를 파악하는 명령어는 다음과 같다.
netstat -a -o
참고자료