【问题标题】:AWS public DNS for ubuntu instance is not accessible from the browser无法从浏览器访问 ubuntu 实例的 AWS 公共 DNS
【发布时间】:2017-07-31 11:10:56
【问题描述】:

我对 AWS 比较陌生,过去几天我一直在看很多教程,试图弄清楚如何让我的 AWS ubuntu 实例可以从浏览器访问。

我做了什么:

1st:我将安全组配置为接受 ssh、http、https 的所有流量,只是为了查看实例中列出的公共 DNS 是否可访问。

2nd:我将实例的 IP 更改为弹性 IP

3rd:我写了一个简单的 node.js 文件,监听端口:9000 和 console.logs 'hello world'

由于某种原因 ssh 可以工作,我可以运行我的 node.js 文件,但是我无法从浏览器访问远程实例。

任何帮助将不胜感激,因为我已经为此工作了几天

谢谢!


感谢大家的快速回复!

我的问题是我没有在我的特定端口中包含 TCP 规则。现在我可以通过 ec2-DNSNAME:9123 访问该端口。

而且,澄清一下,如果我想为所有流量托管该 DNS,我应该为 TCP 规则指定“任意位置”,对吗?

【问题讨论】:

    标签: amazon-web-services ubuntu dns


    【解决方案1】:

    我将安全组配置为接受 ssh、http、https 的所有流量

    在安全组中,“HTTP”不是表示“任何端口上的 HTTP”...它表示“TCP 端口 80 上的任何流量”——80 是 HTTP 的标准 IANA assigned port .

    安全组不知道您传递的流量类型,只知道 IP 协议(​​例如 TCP、UDP、ICMP、GRE 等)和端口号(对于使用端口号的协议)以及任何协议特定信息(ICMP 消息类型)。

    您需要一个允许流量流向端口 9000 的规则。

    【讨论】:

      【解决方案2】:

      首先去你的 EC2 看看 curl http://localhost 是否有效..

      另外,如果你在端口 9000 上暴露你的 nodejs;你是否也在安全组上打开了 9000?

      【讨论】:

        【解决方案3】:

        需要检查的几件事:

        • 安全组
        • 子网 NACLS(这些可以用作子网级别 防火墙,但除非您弄乱了这些,否则它们应该允许所有 流量。)
        • 如果你在服务器上运行netstat -na | grep <PORT>,你看到你的 应用程序监听正确的端口?
        • 您还可以检查您的系统是否存在可能使请求短路的防火墙。

        如果以上内容没有指出您的问题所在,您可以获取 tcpdump 并仅针对来自您的网络浏览器的请求进行过滤(例如,在安装 tcpdump -vvn host 10.20.30.40 port 8000 后替换您的 ip 和端口)。这会让您知道您是否遇到网络问题(数据包未到达服务器)或应用程序是否存在问题。

        我还建议您在进行初步故障排除时使用 IP 地址。这样我们就可以在进入 DNS 之前确定它不是网络/服务器配置。

        【讨论】:

          猜你喜欢
          • 2018-02-08
          • 1970-01-01
          • 1970-01-01
          • 2015-11-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-04-05
          • 2017-03-01
          相关资源
          最近更新 更多