
Ich betreibe beispielsweise einen „Hello World“-HTTP-Server auf einer Ubuntu EC2-Instanz. Von meinem Client aus myurl.com
kann ich nicht darauf zugreifen:curl
$ curl myurl.com:4296
curl: (7) Failed to connect to myurl.com port 4296: Connection refused
Wenn ich versuche, einen anderen Port zu erreichen, tritt eine Zeitüberschreitung meiner Verbindung auf:
$ curl myurl.com:4244
curl: (7) Failed to connect to myurl.com port 4244: Operation timed out
Ich habe die folgende eingehende Regel auf AWS:
Ich kann es auf dem Server curlen:
$ curl localhost:4296
Hello World
Mein Netstat:
$ netstat -a | grep 4296
tcp 0 0 localhost:4296 0.0.0.0:* LISTEN
Was mache ich falsch?
Antwort1
Der Prozess auf Port 4296 hört nur auf demlokaler Host / 127.0.0.1Adresse und ist daher von außen nicht erreichbar. Sie müssen die Konfiguration ändern (oder das Programm selbst, wenn es eines ist, das Sie geschrieben haben), um zuzuhören0.0.0.0- das wird es dazu bringen, weiterzuhörenalleAdressen.
Hier ist ein Beispiel aus meinem System:
~ # 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
Dabei lauscht SSH auf Port 22 auf allen Adressen und ist somit von außen erreichbar (sofern Firewall und SG dies natürlich zulassen).
Andererseits lauscht CUPS auf Port 631 nur auf dem lokalen Host (127.0.0.1), und selbst wenn die Firewall/SG diesen Port zuließe, wäre er von außen nicht zugänglich.
Hoffentlich hilft das :)
Antwort2
Überprüfen Sie, ob Sie mit einer öffentlichen IP-Adresse darauf zugreifen können. Wenn ja, müssen Sie überprüfen, ob Route53 richtig konfiguriert ist. Wenn dies auch mit einer öffentlichen IP-Adresse nicht möglich ist, fügen Sie die Firewall-Regel hinzu, um den Datenverkehr zuzulassen. https://linuxdiaryblog.blogspot.com/2020/06/add-firewall-exception-to-port.html?m=1