Estoy ejecutando una instancia de Debian en Amazon EC2 con Node.js instalado. Si ejecuto el siguiente código:
http = require('http');
http.createServer(function (request, response){
response.writeHead(200, {'Content-Type':'text/plain'});
response.end('Hello World\n');
}).listen(80);
console.log("Running server at port 80");
Obtengo la salida a continuación que me dice que hay otro proceso escuchando en el puerto 80:
Running server at port 80
events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EACCES
at errnoException (net.js:901:11)
at Server._listen2 (net.js:1020:19)
at listen (net.js:1061:10)
at Server.listen (net.js:1127:5)
at Object.<anonymous> (/home/admin/nodetests/nodetest.js:6:4)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
Ahora, cuando verifico si hay un proceso (como root en caso de que algo esté oculto) escuchando en el puerto 80 usando:
netstat -tupln
Obtengo la siguiente salida, que me dice que no hay nada escuchando en el puerto 80:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1667/sshd
tcp6 0 0 :::22 :::* LISTEN 1667/sshd
Debo señalar que Debian tiene el puerto 80 abierto como una regla de entrada si eso hace una diferencia.
Mi pregunta es: ¿Qué estoy haciendo mal? ¿Por qué no puedo identificar el proceso que escucha el puerto 80? ¿Por qué está bloqueado en Debian? ¿Qué pasos debo seguir para que el código se ejecute correctamente?