linux如何进行抓包命令

嘿嘿,说到Linux系统中抓包,这可真是一门技术啊。
它需要多个命令,所有这些命令都需要root权限,否则你将无法捕获甚至一个包。
首先不得不提一下tcpdump。
这是最简单的抓包工具。
您可以从命令行捕获它并实时查看或将其保存到文件中。
例如,如果要捕获HTTP流量,则需要编写:sudotcpdump -iany port8 0 -w http_traffic.pcap。
这意味着所有接口都会受到监控,仅捕获来自端口 8 0 的流量,然后保存到文件中。

我们来谈谈 Tshark。
这个东西就是Wireshark的命令行版本。
它的功能非常相似,但没有图形界面。
适合没有图形环境的系统或者想要编写脚本自动抓包的情况。
用法类似。
例如,如果要捕获来自1 9 2 .1 6 8 .0.1 的流量,则需要执行:sudotshark -iany host 1 9 2 .1 6 8 .0.1 -V。
这次它不仅捕获了流量,还向您展示了详细的内容。

还有ngrep,它结合了grep的文本过滤功能,可以使用正则表达式来匹配数据包的内容。
例如,如果要捕获所有包含“GET”的 HTTP 请求,请写入:sudongrep -q -dany 'GET' port8 0。
该命令的含义是在所有接口上以静默模式捕获来自8 0端口的数据包。
只要数据包内容包含“GET”,就会输出。

嘿嘿,说到这些命令,需要加sudo,不然权限不够,抓包就困难了。
对于更复杂的情况,例如要同时过滤端口和IP地址,则需要使用tcpdump或tshark的BPF语法,如下所示:tcpdump 'port 8 0 and (srchost 1 9 2 .1 6 8 .0.1 or dsthost 1 0.0.0.2 )'。
这次只有满足这两个条件的数据包才会被捕获。

但是,随着时间的推移,数据包捕获会生成大量数据。
您必须小心,数据量不要变得太大。
有时您还可以限制捕获的数据包数量,例如例如。
tcpdump -c 1 00,表示只捕获1 00个数据包。
如果您想捕获较长时间的数据包,您还可以将其与 timeout 命令结合使用,例如例如。
tcpdump -i eth0 -c 1 00 -w capture.pcap -W 1 ,表示每抓到1 00个数据包就暂停一秒。

哎,这个东西你得慢慢学习、练习,不然你真的不知道怎么用。

Linux如何抓取网络数据包进行分析

等等,还有一件事。
上次帮隔壁王先生看电脑,他家里的wifi老断线,所以我在他的旧笔记本上安装了Wireshark。
当机器开始运转时,风扇呼呼地转动,屏幕上的彩色小框和曲线让我眼花缭乱。
他指着一条特别长的蓝线说,这是儿子玩游戏时传回来的。
我当时就说,这东西太厉害了,连他儿子都躲不开偷偷看短视频。
但后来发现,老王的猫正好把网线咬断了。
问题简单得可笑。

Linux怎么使用tcpdump捕获指定协议流量

直接得出结论:tcpdump 捕获指定协议的流量并依赖于 BPF 过滤。

坦白说,BPF是一个规则引擎。
Ether捕获MAC,ip捕获IP,tcp捕获传输层。

我上周运行了HTTP数据包捕获,仅使用tcp端口8 0。

对于复杂场景使用and/or/not。
例如主机1 9 2 .1 6 8 .1 .1 00和端口tcp 8 0。

注意sudo权限。
未经许可做某事是没有意义的。

数据量太大会导致终端冻结。
使用 -c1 00 限制数量。

使用 -w Traffic.pcap 保存文件。
但不要继续写,使用-C1 00来分割文件。

如果流量很大,-s9 6 只捕获前 9 6 个字节保存到磁盘。

只需使用nohup在后台运行即可。

自己检查一下过滤条件,不要用tcp来过滤UDP。