我有一个 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