
우분투 EC2 인스턴스에서 hello-world http 서버를 실행하고 있습니다 myurl.com
. 내 고객이 이를 수행 할 수 없습니다 curl
.
$ curl myurl.com:4296
curl: (7) Failed to connect to myurl.com port 4296: Connection refused
다른 포트에 연결하려고 하면 연결 시간이 초과됩니다.
$ curl myurl.com:4244
curl: (7) Failed to connect to myurl.com port 4244: Operation timed out
AWS에는 다음과 같은 인바운드 규칙이 있습니다.
서버에서 컬링할 수 있습니다.
$ curl localhost:4296
Hello World
내 순상태:
$ netstat -a | grep 4296
tcp 0 0 localhost:4296 0.0.0.0:* LISTEN
내가 도대체 뭘 잘못하고있는 겁니까?
답변1
포트 4296의 프로세스는 다음 포트에서만 수신 대기합니다.로컬호스트 / 127.0.0.1주소이므로 외부에서는 접근이 불가능합니다. 청취하려면 구성(또는 직접 작성한 프로그램인 경우 프로그램 자체)을 변경해야 합니다.0.0.0.0- 그러면 계속 듣게 될 거야모두구애.
내 시스템의 예는 다음과 같습니다.
~ # 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
여기에서 SSH는 모든 주소의 포트 22를 수신하므로 외부에서 액세스할 수 있습니다(물론 방화벽과 SG가 허용하는 경우).
반면 CUPS는 로컬 호스트(127.0.0.1)의 포트 631에서만 수신 대기하며 방화벽/SG가 이 포트를 허용하더라도 외부에서는 액세스할 수 없습니다.
도움이 되었기를 바랍니다 :)
답변2
public up으로 접속이 가능한지 확인해보세요. 가능하다면 Route53이 올바르게 구성되었는지 확인해야 합니다. 공용 IP로도 할 수 없는 경우 방화벽 규칙을 추가하여 트래픽을 허용하십시오. https://linuxdiaryblog.blogspot.com/2020/06/add-firewall-Exception-to-port.html?m=1