如何拦截来自docker容器的UDP流量



我在Docker容器中有一个简单的应用程序,用于侦听和传输UDP数据。这些数据是未加密的,可以广播或定向到特定的IP地址。

我想做的是为这个应用程序设置自动测试。也就是说,我会让一个测试脚本向应用程序发送某些数据包,并捕获/验证响应。我正在寻找在Docker中进行数据包嗅探的方法。我听说过mtimproxy,但它看起来只处理HTTP/S流量(而且我的应用程序无论如何都不尊重HTTP/S_PROXY环境变量(。

理想情况下,此数据包嗅探将在容器外部进行。尽可能地,我试图让应用程序的容器尽可能不知道测试(所以我想使用--network="bridge"并公开所需的端口,就像这个容器将如何操作部署一样(。诀窍是,我不希望任何其他网络流量进入容器,只希望测试脚本生成的流量。有人有什么想法吗?

对于其他有此问题的人,我最终将我的测试脚本放入另一个docker容器中,并使用docker compose通过连接它们的专用网络启动它们。到目前为止,它似乎运行良好(我可以毫无问题地发送/接收两者(。如果情况发生变化,我将更新此答案。

最新更新