EC2 alojó la aplicación Node.js: no se puede conectar de forma remota al puerto

Actualización : Resulta que el único problema era que estaba detrás de un firewall que bloqueaba algunos puertos, pero no 8000.


Edición: TL; DR: no se puede conectar al puerto 9000 de forma remota, pero el puerto 8000 está bien y no sé por qué 🙁


Tengo esta aplicación node.js que se ejecuta en el puerto 8000 y otra ( http-proxy ) que se ejecuta en el puerto 9000 .

Ejecutarlos en mi máquina está bien, pero tengo algunos problemas cuando los instalo en un servidor (instancia de EC2 : abrí los puertos en el grupo de seguridad de la consola web [1] ). La aplicación funciona bien, pero no puedo conectarme al proxy desde fuera. Intenté $ telnet localhost 9000 en el servidor y se conecta, así que supongo que es una buena señal.

Otra cosa que he notado es que si trato de ejecutar las aplicaciones por separado, obtengo los mismos resultados, es decir: 8000 – OK, 9000 – NOTOK: <. Sin embargo, si cambio el puerto que utiliza el proxy de 9000 a 8000, funciona. Y si cambio los puertos, es decir, aplicación: 9000 y proxy: 8000, puedo conectarme al proxy, pero no a la aplicación. También he intentado otros números, pero eso tampoco lo arreglaría.

Supongo que hay algo realmente estúpido que no tiene nada que ver con la aplicación en sí y que me falta, pero no puedo identificarlo, ¿alguien tiene alguna idea de por qué esta configuración no funciona?

server.js

 var express = require('express.io'); var app = module.exports = express(); require('./proxy'); app.http().io(); app.listen(8000); // ... 

proxy.js

 var httpProxy = require('http-proxy'); var url = require('url'); httpProxy.createServer(function(req, res, proxy) { // ... proxy.proxyRequest(req, res, { host: destination.host, port: 80 }); }).listen(9000); 

$ netstat -pln | grep node salida de $ netstat -pln | grep node

 tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN 1487/node tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 1487/node 

Reglas de grupo de seguridad

1

Resultó que el problema no estaba relacionado en absoluto con la aplicación o la configuración de la instancia de EC2.

La red en la que estaba mientras probaba esto estaba bloqueando algunos puertos. Esta es la razón por la que al mover el proxy al puerto 8000 funcionaba bien, pero en el 9000 o en cualquier otro al azar que probé no lo estaba. D’oh!