【问题标题】:How do I open a TCP port on an AWS instance?如何在 AWS 实例上打开 TCP 端口?
【发布时间】:2017-08-18 12:32:27
【问题描述】:

我有一个在 AWS 实例的 8002 端口上运行的 TCP 套接字服务器。我可以从 localhost、127.0.0.1 或内部 AWS IP 地址连接到它,但我无法通过来自 localhost、另一个 AWS 实例或 Internet 的公共 IP 地址连接。无论我使用内部 IP 还是公共 IP,我都无法从另一个 AWS 实例进行连接。

我在活动安全组中打开了端口,但似乎没有在实例上运行任何额外的防火墙(ufw 状态返回“非活动”,并且我没有看到 iptables 安装)。

该实例正在运行 Ubuntu 14.04LTS,如果它有帮助,则服务器应用程序位于 Node 中。

该实例还在端口 80 上运行 nginx,该端口正在工作并允许来自外部的流量。

【问题讨论】:

  • 您的实例是否在连接了 Internet 网关的 VPC 的公有子网中启动?
  • 是的,它位于公共子网上(并且可以访问端口 80 上的 Web 服务器 - 我已经更新了问题以包含该问题)
  • @jarmod 谢谢你!我现在已经浏览了该文档,一切看起来应该可以正常工作。
  • TCP服务器应该是所有接口(0.0.0.0)时才绑定回环接口(127.0.0.1)?

标签: amazon-web-services tcp firewall


【解决方案1】:

您可以检查以下配置,

  1. 确保 Internet 网关已连接到 VPC
  2. 检查启动实例的子网是否指向互联网网关
  3. 检查实例是否分配了公共 IP/弹性 IP
  4. 检查 NACL 和安全组是否允许端口 8002 上的入站流量

【讨论】:

  • 1、2、3都可以; 4. 安全组确实允许 TCP 8002 上的流量;什么是 NACL,在哪里查看?
  • NACL - 网络访问控制列表。如果您创建了新的 VPC,AWS 将通过允许入站和出站流量来创建默认 NACL,除非您对其进行编辑。所以这不是你的问题。
  • 您能分享一下您的实例的安全组配置吗?
  • 这是安全组配置的截图:link
  • 通过故障排除文档,我确实找到了 NACL,它确实允许所有流量。
【解决方案2】:

根据文档,亚马逊声明:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#concepts-private-addresses

我们将外部 DNS 主机名解析为 实例网络外的实例,以及私有 IPv4 实例网络中的实例地址

因此,如果您从 localhost 访问公共 IP,它可能无法解析它。

【讨论】:

    猜你喜欢
    • 2021-06-08
    • 2018-12-29
    • 1970-01-01
    • 2023-03-16
    • 2018-07-20
    • 2013-06-14
    • 1970-01-01
    • 2021-04-30
    • 2016-10-06
    相关资源
    最近更新 更多