![Tcpdump 或类似工具 - 我怎样才能捕获每个数据包目的地和端口的一个实例?](https://linux22.com/image/1529185/Tcpdump%20%E6%88%96%E7%B1%BB%E4%BC%BC%E5%B7%A5%E5%85%B7%20-%20%E6%88%91%E6%80%8E%E6%A0%B7%E6%89%8D%E8%83%BD%E6%8D%95%E8%8E%B7%E6%AF%8F%E4%B8%AA%E6%95%B0%E6%8D%AE%E5%8C%85%E7%9B%AE%E7%9A%84%E5%9C%B0%E5%92%8C%E7%AB%AF%E5%8F%A3%E7%9A%84%E4%B8%80%E4%B8%AA%E5%AE%9E%E4%BE%8B%EF%BC%9F.png)
我希望让 tcpdump 之类的程序运行长达一周,因此使其输出尽可能简洁,以减少文件大小并加快捕获后分析的速度。
我需要做的就是记录每个数据包源或目的地(IP 地址和端口)的第一个实例,这样我就可以了解哪些设备正在与我的服务器通信(反之亦然)。
因此,一旦它看到从 IP 地址 192.168.1.10 到端口 80 的数据包,就不再捕获从该地址到该端口的任何数据包。
如果它可以建立从每个源/到每个目的地的数据包计数表,则可以获得加分。
到目前为止,我想到最好的办法是运行带有-t
和选项(分别为无时间戳和安静)的 tcpdump,并通过和-q
运行输出以减少(但不消除)重复。例如,发往同一目标端口但来自不同源端口的数据包会漏过此网络。sort
uniq