我正在尝试监控我的流量,并在 Linux 上安装了 WireShark 作为最推荐的工具。
但是,我找不到可靠的方法来查看数据包是传入还是传出,并显示接口名称(即使在数据包详细信息中,接口也始终为 0)。我可以通过 ip 猜测该信息,但我想要准确的信息,不想出错。接口promiscuous
已处于模式。
ping localhost
例如,使用 SNAT WireShark 监控any
接口(Linux-cooked
链路层标头)后,会给出一个请求条目
Internet Protocol Version 4, Src: 192.168.1.4, Dst: 127.0.0.1
并回复:
Internet Protocol Version 4, Src: 127.0.0.1, Dst: 127.0.0.1
其中涉及两个接口,并且在我看来每个请求和回复都有两个不同的包。如果没有详细信息,我无法看到 SNAT 细节。
是否有设置/方式可以查看
interface+in/out
WireShark 中的信息?如果没有,您建议如何嗅探/监控?
答案1
Wireshark及其命令行配套捕获工具tshark
和dumpcap
允许您指定多个要捕获的接口。例如,不必指定-i any
最后得到一个 Linux Cooked Capture,你可以指定-i eth0 -i lo
在两个接口上进行捕获,而不会丢失每个接口的信息。使用 Wireshark,只需Ctrl 键单击您想要从主页或捕获->选项菜单。
由于您在多个接口上进行捕获,因此每个接口都分配有不同的接口 ID添加到帧数据中,甚至可以用于使用frame.interface_id
显示过滤器过滤数据包。例如,如果您只想查看接口 ID 为 0 的帧,请使用frame.interface_id == 0
。您还可以将此字段添加为列,以便更轻松地查看哪个帧与哪个接口相关联。
答案2
您可以简单地使用 tcpdump 命令来监视传入或传出的数据包。
tcpdump -i eth0 (Here you need to specify that which port you want to monitor)
为了使用远程 IP 和数据包大小进行可视化,您可以安装NTOP 工具在你的 Linux 服务器上