
Estou executando um servidor http hello-world em uma instância EC2 do Ubuntu, digamos, myurl.com
. Não consigo curl
fazer isso com meu cliente:
$ curl myurl.com:4296
curl: (7) Failed to connect to myurl.com port 4296: Connection refused
Quando tento acessar qualquer outra porta, minha conexão atinge o tempo limite:
$ curl myurl.com:4244
curl: (7) Failed to connect to myurl.com port 4244: Operation timed out
Tenho a seguinte regra de entrada na AWS:
Consigo enrolar no servidor:
$ curl localhost:4296
Hello World
Meu netstat:
$ netstat -a | grep 4296
tcp 0 0 localhost:4296 0.0.0.0:* LISTEN
O que estou fazendo de errado?
Responder1
O processo na porta 4296 escuta apenas nohost local/127.0.0.1endereço e, portanto, não é acessível de fora. Você tem que alterar a configuração (ou o próprio programa, se for um que você escreveu) para ouvir0.0.0.0- isso fará com que ele ouçatodosendereços.
Aqui está um exemplo do meu 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
Aqui, o SSH escuta na porta 22 em todos os endereços e, portanto, é acessível de fora (se o firewall e o SG permitirem, é claro).
Por outro lado, o CUPS escuta na porta 631 apenas no host local (127.0.0.1) e mesmo que o firewall/SG permitisse esta porta ela não seria acessível de fora.
Espero que ajude :)
Responder2
Verifique se você consegue acessá-lo com público. Se você puder, verifique se o route53 está configurado corretamente. Se você não puder com o IP público também, adicione a regra de firewall para permitir o tráfego. https://linuxdiaryblog.blogspot.com/2020/06/add-firewall-exception-to-port.html?m=1