在安全组上打开端口后,ec2 实例将不允许从实例内部连接到端口

在安全组上打开端口后,ec2 实例将不允许从实例内部连接到端口

我在安全组上有一个 EC2 实例,允许端口 80、443 和 22(tcp,从 0.0.0.0/0 和 ::/0 入站);以及每个出站连接(到 0.0.0.0/0 和 ::/0,所有 tcp 和 udp)。

我最近设置了一个邮件服务器,因此我从 0.0.0.0/0 和 ::/0 添加了端口 25/tcp。

现在我可以按预期使用公共 IP 从任何外部主机连接到我的邮件服务器,没有任何问题。

我还可以使用主机名或 127.0.0.1 作为 IP 从实例内部进行连接localhost

但我无法使用实例的公共 IP 或主机名从实例内部连接到端口 25 上的实例。我没有收到连接被拒绝或其他任何信息,只是超时。

实例中的任何其他开放端口都没有出现此问题,我可以使用实例 shell 中的公共 IP 完美地 telnet 到端口 80、443 或 22。

我尝试过重启、停止/启动,甚至从头创建一个新的安全组并将实例切换到它。结果仍然相同:外部连接正常,使用公共 IP 的内部连接仅在该端口上失败。

iptables 看起来不错,我看不到会影响此端口而不影响其他端口的限制或权限。

此实例上未启用防火墙(Debian buster)

邮件服务器是 postfix(我不知道这是否有任何区别。如果它实际上是一个 postfix 配置问题,我很困惑,因为我在服务器日志中看不到任何内容,并且它允许其他每个连接源......)

答案1

但我无法使用实例的公共 IP 或主机名从实例内部连接到端口 25 上的实例。我没有收到连接被拒绝或其他任何信息,只是超时。

Amazon EC2 不允许实例发出 SMTP 流量(除非您已申请并获得账户豁免)。这意味着您无法通过其公共 IP 地址访问您服务器的 SMTP 服务器(或任何其他人的服务器)。

如果需要连接本地主机,就连接到localhost。

相关内容