在同一 EC2 子网上的实例之间创建 TCP 连接时出现 EHOSTUNREACH 错误

在同一 EC2 子网上的实例之间创建 TCP 连接时出现 EHOSTUNREACH 错误

我有一个客户端 EC2 实例和一个服务器 EC2 实例,它们都位于同一 EC2 子网中。子网路由表已配置为“本地”路由。

当我跑步时EC2 网络见解对于从客户端实例到端口 22 处的服务器实例的 TCP 路径,它成功找到路径。对我来说,这表明安全组和 ACL 的配置方式允许此流量。

telnet <server-ip> 22当我从客户端运行时,我得到“没有到主机的路由”。在 strace 中,我看到 connect(2) 失败,并出现 errno=EHOSTUNREACH。

对我来说,这有点暗示安全组/ACL/中间路由问题?但是,当我使用随机端口从服务器运行 telnet 到客户端时(我知道没有任何东西在侦听该端口),我得到了预期的“连接被拒绝”。

特别奇怪的是,我可以在 VPC 流日志中看到通信正常。操作为“接受”,日志状态为“正常”。那么这有点表明安全组/ACL 没问题吗?

当我跑步时路线(8)从客户端实例中,我看到服务器实例的网关是 0.0.0.0,这表明它仅在本地广播域上可用。所以看起来没有任何中间路由器。

有谁知道这里发生了什么,或者我可以做些什么来进一步调试?理想情况下,我可以通过其他方式访问该实例,或者至少访问其日志。

看起来服务器实例可能拒绝 IP 级别的流量,而不到达 TCP?但这似乎很奇怪,因为服务器的 IP 层甚至不应该知道 TCP 端口。

我相信 sshd 正在服务器实例上运行,因此如果我可以解决此网络问题,那么我大概可以访问我的实例。

答案1

显然firwalld已在此处的服务器实例上启动。所以服务器没有对 TCP SYN 做出响应。

相关内容