GNU/Linux >> Tutoriales Linux >  >> Linux

La aplicación Node.js no se puede ejecutar en el puerto 80 aunque no haya otro proceso que bloquee el puerto

El código de error EACCES significa que no tiene los permisos adecuados para ejecutar aplicaciones en ese puerto. En los sistemas Linux, cualquier puerto por debajo de 1024 requiere acceso de root.


En lugar de ejecutar en el puerto 80, puede redirigir el puerto 80 al puerto de su aplicación (>1024) usando

iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000

Esto funcionará si su aplicación se ejecuta en el puerto 3000.


Respuesta corta:puede permitir el acceso del nodo a ese puerto usando:

setcap 'cap_net_bind_service=+ep' /path/to/nodejs

respuesta larga

Editar:

Puede que no funcione en nuevas versiones de nodos


Linux
  1. Linux – ¿Encontrar el Pid del proceso usando un puerto específico?

  2. Guardar en una variable el número de segundos que tardó en ejecutarse un proceso

  3. ¿Dónde puedo encontrar el código fuente del comando cp?

  4. dlsym devuelve NULL, aunque el símbolo existe

  5. ¿Cómo puedo ejecutar SSH en un puerto que no sea el 22?

Ejecute la línea de comandos de Linux en su iPad

¿Cómo puedo saber la ruta absoluta de un proceso en ejecución?

Ejecute un ls sin obtener la ruta completa

Encuentra qué proceso está en el otro extremo de una tubería

¿Puede un proceso ejecutarse independientemente de cualquier shell?

Permitir que las aplicaciones node.js se ejecuten en el puerto 80