Node.js Express EACCES: permission denied 0.0.0.0 해결법

este·2023년 7월 22일
0

개요

외주를 진행하던 어느 날 Node.js Express 서버를 실행하려고 하니까(node app.js, nodemon app.js) 아래 오류가 발생하였다.

node:events:490
      throw er; // Unhandled 'error' event
      ^

Error: listen EACCES: permission denied 0.0.0.0:3001
    at Server.setupListenHandle [as _listen2] (node:net:1723:21)
    at listenInCluster (node:net:1788:12)
    at Server.listen (node:net:1876:7)
    at Function.listen (D:\2023_PROJECT\kakao\kakao-capturer\test-server\node_modules\e
    at Object.<anonymous> (D:\2023_PROJECT\kakao\kakao-capturer\test-server\app.js:14:5
    at Module._compile (node:internal/modules/cjs/loader:1275:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1329:10)
    at Module.load (node:internal/modules/cjs/loader:1133:32)
    at Module._load (node:internal/modules/cjs/loader:972:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:83:1
Emitted 'error' event on Server instance at:
    at emitErrorNT (node:net:1767:8)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
  code: 'EACCES',
  errno: -4092,
  syscall: 'listen',
  address: '0.0.0.0',
  port: 3001
}

어제까지만 해도 정상적으로 동작하여 npm + vscode launch로 실행해서 안 되는 건지 알아보기 위해 node app.js로 직접 실행해봤는데 동일한 오류가 발생했다.

해결

구글에서 비슷한 상황을 비교적 쉽게 찾을 수 있었다. 한 외국인 유튜버의 1분 2초짜리 영상을 참고했다. 링크는 아래에 첨부하였다.
CMD를 관리자 권한으로 연 뒤 아래 명령어를 순차적으로 입력하였다. 이후 서버 실행 시 127.0.0.1:3000으로 잘 매핑되었다.
net stop winnat
net start winnat

winnat은 Windows Network Address Translation(즉, Windows NAT)의 준말로, stop 시 Windows NAT 서비스가 중지된다. 즉 내부 네트워크와 인터넷 간 통신 및 기존에 NAT에 의해 구축된 연결이 모두 중지된다. 인터넷 브라우징, 카카오톡, 디스코드 등의 응용프로그램은 중지되지 않는다.

링크

https://youtu.be/__ukagYAlu8

profile
조금 이상한 사람

1개의 댓글

comment-user-thumbnail
2023년 7월 22일

오류 해결 방법이 정말 도움이 되었어요. 감사합니다.

답글 달기