
Estoy ejecutando un servidor http hello-world en una instancia EC2 de Ubuntu, digamos myurl.com
. No puedo curl
hacerlo desde mi cliente:
$ curl myurl.com:4296
curl: (7) Failed to connect to myurl.com port 4296: Connection refused
Cuando intento llegar a cualquier otro puerto, mi conexión se agota:
$ curl myurl.com:4244
curl: (7) Failed to connect to myurl.com port 4244: Operation timed out
Tengo la siguiente regla de entrada en AWS:
Puedo rizarlo en el servidor:
$ curl localhost:4296
Hello World
Mi estadística de red:
$ netstat -a | grep 4296
tcp 0 0 localhost:4296 0.0.0.0:* LISTEN
¿Qué estoy haciendo mal?
Respuesta1
El proceso en el puerto 4296 escucha solo en elservidor local / 127.0.0.1dirección y por lo tanto no es accesible desde el exterior. Tienes que cambiar la configuración (o el programa en sí si es uno que escribiste) para escuchar0.0.0.0- eso hará que escuchetododirecciones.
Aquí hay un ejemplo de mi sistema:
~ # netstat -tnlp
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 1311/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1183/cupsd
Aquí SSH escucha en el puerto 22 en todas las direcciones y, por lo tanto, es accesible desde el exterior (si el firewall y el SG lo permiten, por supuesto).
Por otro lado, CUPS escucha en el puerto 631 solo en el host local (127.0.0.1) e incluso si el firewall/SG permitiera este puerto, no sería accesible desde el exterior.
Espero que ayude :)
Respuesta2
Comprueba si puedes acceder a él con acceso público. Si puede, deberá verificar si route53 está configurado correctamente. Si no puede hacerlo con una IP pública, agregue la regla de firewall para permitir el tráfico. https://linuxdiaryblog.blogspot.com/2020/06/add-firewall-exception-to-port.html?m=1