![AWS 入站规则不适用于安全组](https://linux22.com/image/705904/AWS%20%E5%85%A5%E7%AB%99%E8%A7%84%E5%88%99%E4%B8%8D%E9%80%82%E7%94%A8%E4%BA%8E%E5%AE%89%E5%85%A8%E7%BB%84.png)
我正在尝试在 AWS 上不同可用区域(但同一区域)运行的一对服务器之间启用端口 8080。
我创建了一个安全组,添加了8080端口,并添加了安全组的ID作为源。然后我将这个安全组添加到了两台服务器上。
我无法通过端口 8080 从一台机器连接到另一台机器,如果我将源更改为允许全部,那么我就可以连接。
我是不是漏掉了什么步骤?无论我使用哪个组 ID 作为源,如果不将其完全打开,我仍然无法访问。是否可能需要打开另一个端口来为 HTTP 请求提供服务?连接没有被拒绝,只是超时了。
答案1
假设Server A
正在尝试 pingServer B
并且Server B
的安全组授予来自Server A
安全组的入站访问权限...
您需要确保通过的私有 DNS 地址(或私有 IP 地址)而不是的公共(或弹性)地址Server A
进行 ping 。Server B
Server B
Server B
根据文档:
根据与源安全组关联的实例的私有 IP 地址(而不是公共 IP 或弹性 IP 地址)允许传入流量。
如果您从中选择一个实例实例页面上EC2 仪表板您可以看到实例的公有地址和私有地址。
答案2
这听起来像是临时端口。我认为,当你打开所有端口时,它才能工作,这是主要原因。
简而言之:当一台计算机连接到另一台计算机的端口时,它会选择一个随机端口作为“源”端口。目标计算机上必须解除此端口的阻塞,以允许流量返回。
阅读操作系统上的临时端口范围 - 它各不相同,但 49152 到 65535 是标准范围。打开 8080 和该端口范围。如果有效,请保持它们打开,这通常是安全的。最重要的是确保特权端口(低于 1000)受到保护。
在这种情况下可能不适用,但是当您遇到连接问题时,通常应该检查网络 ACL。