无法从我的网络浏览器连接到在 Amazon Webservices EC2 中的 Ubuntu Linux SMP 上运行的 Jetty 服务器。
我可以使用 localhost 进行连接,同时从机器本身登录
IEcurl http://localhost:8080/?type=release\&query=reid:1
作品
因为这是一个 Amazon EC2 实例,它既有私有 IP,也有公共 IP,当我启动 jetty 时,它说
* Starting Jetty servlet engine, jetty8
* Jetty servlet engine started, reachable on http://ip-172-31-16-219:8080/. jetty8
但是 ip-172-31-16-219 与我的私有地址有关,而不是我的公共地址,但是从计算机本身使用私有 ipaddress 的 dns 仍然失败
curl http://ip-172-31-16-219.eu-west-1.compute.internal:8080/?type=release\&query=reid:1
我读到过问题可能是 iptables 防火墙,但是 iptables 在这个实例上不是一个已知命令(可能 ubuntu 没有使用)
为了测试目的,我已配置了 Amazon 安全组,以允许完全入站和出站
我还需要做什么?
答案1
我怀疑您想使用服务器的“公共 IP”和/或“公共 DNS”,而不是“私有 IP”或“私有 DNS”。您可以在 EC2 仪表板上实例的“描述”选项卡中看到所有这些。
私有 DNScompute.internal
域名仅在您使用 Amazon 提供的 DNS 时才有意义。不过,我不知道您特别想要它的理由是什么。
更多信息:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html
答案2
它看起来像是根据您的主机名给出的输出,因此请检查 /etc/hostname 中的内容,如果有误,请将其更改为更合适的内容。
但是,实际上不需要主机名来连接,您只需连接到您在指定端口上为实例提供的公共 IP 地址(在本例中为 8080)即可
还要确保 Amazon EC2 控制台中的防火墙规则正确并且允许来自外界的 8080。