Docker 容器内的 Node.js UDP 侦听器报告数据包的源 IP 不可靠

Docker 容器内的 Node.js UDP 侦听器报告数据包的源 IP 不可靠

我有一个 Node.JS 应用程序接收 UDP 数据包,最近我将其移入 Docker 容器以便于部署。该应用程序依赖于根据源 IP 区分多个 UDP 流(使用rinfo.地址在‘消息’事件上)。

对于其中一些流,源 IP 报告为 172.17.0.1,这只是从 Docker 容器内部看到的“外部”的 IP。

如何可靠地获取 Docker 容器内 UDP 数据包的实际原始 IP?

答案1

我找到了一个解决方案——但我对它的理解有限。

在主机中运行sudo conntrack -D -p udp显然会重置某些内容并允许报告真实的原始 IP 地址。

显然,这需要在容器重新启动后完成。

致谢:https://github.com/moby/moby/issues/8795#issuecomment-64946289

相关内容