Error: listen EACCES: permission denied 0.0.0.0:80

 

error_img

 

Error: listen EACCES: permission denied 0.0.0.0:80
    at Server.setupListenHandle [as _listen2] (net.js:1301:21)
    at listenInCluster (net.js:1366:12)
    at Server.listen (net.js:1452:7)
    at Object.<anonymous> (/home/ubuntu/portfolio/index.js:19:5)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
    at internal/main/run_main_module.js:17:47
Emitted 'error' event on Server instance at:
    at emitErrorNT (net.js:1345:8)
    at processTicksAndRejections (internal/process/task_queues.js:80:21) {
  code: 'EACCES',
  errno: -13,
  syscall: 'listen',
  address: '0.0.0.0',
  port: 80
}

 

환경


AWS ec2 - ubuntu - Node.js를 사용하여 서버를 실행했을때 발생

 

 

해결방법


 

권한문제로 생각되어 sudo node index.js 로 실행해 봤지만 에러는 발생하지 않았지만 접속이 안됨.

80 포트를 사용하지 않고 8080포트 등 다른 포트를 사용하여  80 포트로 리디렉션

 

아래 명령어로 적용

 

sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080