linux - 无法从 AWS 外部通过 HTTP 连接到 EC2 实例

标签 linux amazon-web-services amazon-ec2

如果有什么不同的话,这是在 AWS 中国。

我有一个新的 EC2 实例。我几天前创建了它。它应该是 Rails 应用程序的应用程序服务器。 Apache 已启动并正在运行,并且可以正常工作(curl localhost 有效)。当我从另一个 EC2 实例尝试时,它也响应正常(使用 EC2 内部 IP 地址)。

但是,如果我使用外部 IP 地址,它就不起作用。它超时了。

我检查的事情:

  • Apache 正在运行,它正在监听 eth0 和本地主机。
  • 实例中没有防火墙(默认 Amazon Linux 镜像,iptables -L 返回所有 ACCEPT 策略,没有其他规则)。
  • 安全组是正确的。它具有允许全局访问的入站端口 80 和端口 443 的规则。
  • 我正在修改的安全组确实应用于有问题的实例。我尝试从该安全组中删除 SSH 访问权限,但我与服务器的 SSH 连接中断了。再次添加访问权限,我能够通过 ssh 登录。所以安全组正在工作并应用规则。
  • 我什至尝试在实例前面设置一个负载平衡器。负载均衡器也无法访问该实例。
  • 是的,我使用了正确的 IP 地址。我检查了一遍又一遍。
  • 我尝试使用公共(public)主机名,它仍然不起作用(为什么会这样?),但它确认我有正确的 IP 地址,因为它确实在实例内部起作用(因为在 AWS 内部它指向内部 IP地址)。

我完全被这个难住了。这可能是我的一个非常愚蠢的错误,但我已经尝试了我能想到的一切。我用谷歌搜索并尝试了其他人所说的对他们有用的一切。我让一位同事调查了它,他也无法让它发挥作用。

那么,有什么想法吗?我错过了什么?

谢谢!

编辑:一位同事提出了一些完全有道理的建议:如果我在不同的端口收听怎么办?那它行得通吗?事实证明确实如此。配置Apache监听9876端口,在安全组打开,当然可以了。所以它只是过滤了端口 80。 我的下一步是创建一个负载均衡器,它监听端口 80 并将端口 9876 转发到实例。而且,当然,它不起作用。 LB连上实例,说上线了,但是我80端口上不了LB。所以好像80端口上AWS中国什么都上不了,还是完全卡在这里。

最佳答案

我最终得到了另一种媒体的回应,但我想我会在这里分享它,以防其他有同样问题的人徘徊在这个问题上。

服务器所有者需要 ICP,他们拥有该 ICP,但尚未通过 AWS 中国进行身份验证。 ICP 是中国政府授权企业运营网站的某种文件。

更多信息:https://www.amazonaws.cn/en/about-aws/china/faqs/#do-i-need-icp-recordal

关于linux - 无法从 AWS 外部通过 HTTP 连接到 EC2 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29422709/

相关文章:

postgresql - ogr2ogr 缓慢上传到 postgres

linux - 处理器和虚拟/物理地址

amazon-web-services - AWS API 网关上的剥离 header

ruby-on-rails - 使用橡胶将 Rails 应用程序部署到 AWS - 无 :NilClass error

python - GAE/P存储SES连接和线程安全

linux - 无法导入 docker 或 docker-py - 没有名为 docker 的模块

amazon-web-services - 在 EC2 实例创建中使用 "Proceed without key pair"?

linux - Linux 中命令行选项的正负形式是什么

linux - 脚本搜索多个字符串

linux - 在 Firefox 中打开具有特定扩展名的文件