AWS VPC - 使用公共IP编辑DNS主机名问题ERR_CONNECTION_REFUSED

时间:2017-01-06 00:07:03

标签: amazon-ec2

当我在自定义VPC中未启用DNS主机名时,我遇到了获取ERR_CONNECTION_REFUSED的奇怪问题。

我创建了一个带有一个子网(公共),一个路由表和一个Internet网关的VPC。

我的路由表有一条到我的Internet网关的路由。我使用默认的网络ACL。我的SG有1024-65535端口打开(< ---这只是一个测试!)。

我从AWS Linux AMI创建一个实例并将其放入我的公有子网中。当我的VPC配置为通过启用"编辑DNS主机名"来分配DNS主机名,然后我可以从我的浏览器访问我的实例。 (Instance是Nodejs Web服务)。一切正常,网络接口流日志验证流量是否到达我的实例。

我通过"编辑DNS主机名"来禁用我的VPC中的DNS主机名创建。我按照相同的步骤创建一个新实例。它没有预期的DNS主机名(私有或公共),但它确实有一个公共IP地址。当我尝试通过浏览器通过公共IP连接到我的实例时,我得到了ERR_CONNECTION_REFUSED。

通过启用/禁用DNS主机名,我似乎可以通过成功/失败轻松重现此错误。

我在配置中遗漏了什么?这是一个已知的问题?我在抽烟吗?

感谢。

1 个答案:

答案 0 :(得分:0)

问题是Nodejs Web服务无法找到绑定的主机名...因为我从#!/ bin / bash UserData脚本中的元数据中提取绑定主机名:

# Grab the EC2 instance internal DNS and configure the Hapi server host value
localhost=$(curl http://169.254.169.254/latest/meta-data/local-hostname)
rm -f ServerHost.js
echo -n "module.exports = \"" > ServerHost.js
echo -n "$localhost" >> ServerHost.js
echo "\"" >> ServerHost.js

但是由于没有私有DNS(因为手动创建VPC时的默认值是'禁用'),所以没有'local-hostname'。