这可能是一个非常愚蠢的问题,如果是这样的话,请原谅我;)我想知道是否真的可以从码头化的容器中扫描我的笔记本电脑所连接的网络?我从我的docker容器运行Tshark,但是唯一经过的包看起来像这样:
Capturing on 'eth0'
1 0.000000000 fe80::cc97:7fff:fe93:48f -> ff02::2 ICMPv6 70 Router Solicitation from ce:97:7f:93:04:8f
2 8.928523400 fe80::cc97:7fff:fe93:48f -> ff02::2 ICMPv6 70 Router Solicitation from ce:97:7f:93:04:8f
3 25.565048800 fe80::cc97:7fff:fe93:48f -> ff02::2 ICMPv6 70 Router Solicitation from ce:97:7f:93:04:8f
4 57.528334500 fe80::cc97:7fff:fe93:48f -> ff02::2 ICMPv6 70 Router Solicitation from ce:97:7f:93:04:8f
5 122.088671000 fe80::cc97:7fff:fe93:48f -> ff02::2 ICMPv6 70 Router Solicitation from ce:97:7f:93:04:8f
我没有收到更多的包,即使我没有指定任何接口,它自动尝试从eth0捕获,这给出了上述结果。我的笔记本电脑本身就是连接到互联网的。
因为我知道我需要暴露特定的端口,如果我想访问Web界面,例如在端口5000上的容器中运行,我想知道Tshark是否仅在我暴露大多数端口时才有效...
我会发布这个作为答案,因为我认为这将尽可能接近我。似乎有人写了这个问题的解决方案:https://jerrygamblin.com/2016/05/28/a-docker-container-to-capture-all-traffic-from-host/
上述解决方案的唯一问题是--net=host
(主机网络模式)似乎在OSX上没有正常工作:Is there a workaround to use the host's network in Docker for Mac?。因此,最好的解决方案可能是在本地运行pyshark和tshark,并将所有捕获的流量推送到docker实例,我将在其中存储并处理它。
或者只是使用在debian或类似设备上运行的设备,这对主机网络模式没有任何问题。