linux tcpdump 怎么只抓tcp的包
时间: 2024-12-17 16:29:45 浏览: 10
Linux下使用tcpdump抓包的实现方法
5星 · 资源好评率100%
`tcpdump`是一个强大的网络数据包捕获工具,在Linux系统中用于查看实时的网络通信情况。如果你只想抓取TCP协议的数据包,你可以使用它的过滤选项 `-p` 和 `-s` 来指定只显示包含TCP首部的数据包,并限制显示的数据长度。
以下是命令的基本结构:
```bash
tcpdump -i <interface> -p -s 0 -t -n 'tcp'
```
解释一下这些选项:
- `-i <interface>` 指定你要监听的网络接口,如 `eth0` 或 `wlan0`。
- `-p` 表示保留完整的IP分组头部信息,包括TCP首部。
- `-s 0` 设置数据包的最大大小为0,意味着显示所有的数据部分。
- `-t` 表示禁止转换IPv6地址到短格式。
- `-n` 保持地址的数值形式,不进行域名解析。
当你运行这个命令时,`tcpdump` 将只会输出包含TCP数据的包,而不会显示UDP或其他非TCP包。如果你想进一步过滤特定主机或端口的TCP流量,可以在`'tcp'` 后面添加相应的过滤条件,例如:
```bash
tcpdump -i eth0 -p -s 0 -t -n 'src host 192.168.1.1 and port 80'
```
这将只捕获从192.168.1.1发出并连接到80端口的TCP数据。
阅读全文