hve*_*iga 5 networking amazon-ecs docker
我们在 ECS 上部署了几个 docker 容器。容器内的应用程序使用远程服务,因此需要使用它们的10.X.X.X私有IP来访问它们。
我们使用 Docker 1.13 和 CentOS 7 以及 docker/alpine 作为我们的基础镜像。我们也用于netwokMode: host我们的容器。当我们可以从主机成功运行但如果我们从容器内部运行相同的命令时,问题就会出现telnet 10.X.X.X 9999,它就会挂起并且无法连接。
此外,我们net.ipv4.ip_forward在主机(容器运行的位置)中启用,但在远程计算机中禁用。
不确定可能是什么问题iptables?
我花了一天时间解决同样的问题(尝试使用网络模式“桥接”和“主机”),看起来像是在 ECS 内使用 busybox 的 telnet 的问题 - Alpine 的 telnet 是 busybox 的符号链接。我对 busybox/networking 的了解不够,无法说明根本原因是什么,但我能够通过使用其他工具来证明网络路径是清晰的。
我测试网络路径的“去”是使用 netcat,如下所示。“成功”或“失败”消息因版本而异,但拒绝或超时(-w#)非常明显。netcat 在这里所做的只是请求一个套接字 - 它实际上并不与侦听应用程序通信,因此您需要其他东西来测试它。
nc -vz -w2 HOST PORT
Run Code Online (Sandbox Code Playgroud)
我今天的问题是对应用程序的 mongo 连接进行故障排除。nc 显示路径是清晰的,但 telnet 存在与您报告的相同的问题。我最终安装了 mongo 客户端并进行了检查,并且可以正确连接。
如果您需要从 ECS 容器内部通过 telnet 实际运行命令,也许可以尝试安装不同的 telnet 工具并避免使用 busybox 内置工具。
| 归档时间: |
|
| 查看次数: |
1991 次 |
| 最近记录: |