macos - 可以从 dockerized Tshark 扫描网络吗?
问题描述
这可能是一个非常愚蠢的问题,如果是这样,请原谅我;)我想知道是否真的可以从 dockerized 容器扫描我自己的笔记本电脑所连接的网络?我正在从我的 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 上似乎不能正常工作:是否有一种解决方法可以在 Docker for Mac 中使用主机网络?. 因此,最好的解决方案可能是在本地运行 pyshark 和 tshark,并将所有捕获的流量推送到 docker 实例,我将在其中存储和处理它。
或者也许只是使用在 debian 或类似设备上运行的设备,它对主机网络模式没有任何问题。
推荐阅读
- vue.js - Vue 移除带有它状态的子组件
- orientdb - 带有 ssl 的 Orientdb Http api
- amazon-web-services - 通过我在 aws 中的本地计算机的堡垒主机私下连接到 Web 应用程序
- c# - 如果发生异常,退出函数/方法
- javascript - 在 javascript/moment 中比较跨国际日期变更线的日期
- html - 转移外块
- windows-10 - 从 git bash 获取 windows 版本
- android - 如果网络请求失败,LiveData 不会触发两次
- spring-integration - 如何为spring集成xml代码编写单元测试
- asp.net - “找不到类型或命名空间 HttpPostedFileBase”” - 添加 system.web 后