【问题标题】:Can docker host intercept local traffic inside a container? [closed]docker host 可以拦截容器内的本地流量吗? [关闭]
【发布时间】:2021-11-12 06:25:24
【问题描述】:

docker 主机是否可以观察到在同一个容器内运行的两个进程之间的通信?这些进程使用 localhost 上的 TCP 进行通信。

我看到的大多数文档都在谈论 docker0 接口或 docker-compose 创建的任何接口上的嗅探。但这将是网络接口上的出站/入站流量。就我而言,所有通信都是本地的。

【问题讨论】:

  • 虽然我不太了解 docker 网络堆栈,但你可以用 BPF 拦截任何东西

标签: docker containers


【解决方案1】:

我将 bpftrace 与 tcpconnect.bt(或 tcpaccept.bt)一起使用 如您所见,它可以观察容器 localhost 到容器 localhost tcp 连接(或接受)

如果你想更详细,你可以编写自己的 bpf 程序

【讨论】:

  • 我认为 localhost 到 localhost 的数据包将使用 lo 接口而不是 veth 或 docker0 接口。所以我猜常见的方法无法拦截那个数据包
  • 谢谢。遇到了这篇文章 - lwn.net/Articles/793749,其中一个探针附加到 tcp_sendmsg 函数。从第二个参数转储消息应该很简单。
猜你喜欢
  • 2020-11-02
  • 2023-03-04
  • 1970-01-01
  • 2018-09-19
  • 1970-01-01
  • 2014-10-23
  • 1970-01-01
  • 2010-10-13
  • 2018-10-08
相关资源
最近更新 更多