linux教程:tcpdump抓包命令(linux上的抓包工具)
时间: 2025-01-01 16:27:42 浏览: 30
### 关于Linux上使用tcpdump进行网络抓包的教程
#### 一、简介
Tcpdump是一个功能强大的命令行工具,在Linux环境下用于捕获并显示流经某个网络接口的数据包。该工具能够依据特定条件筛选所需数据包,从而便于诊断网络问题或监控流量状况[^4]。
#### 二、基本语法结构
`tcpdump [选项] [表达式]`
- **选项**:控制输出格式和其他行为;
- **表达式**:定义要捕捉哪些类型的数据包;
#### 三、常用参数说明
- `-i interface`: 指定监听哪个网络接口,默认会自动选择第一个非环回设备。
- `-n / -nn`: 不解析主机名/服务名称,加快处理速度。
- `-v, -vv, -vvv`: 提高输出详细程度。
- `host IP_ADDR`: 只匹配来自或去往指定IP地址的数据包。
- `src/dst HOST`: 分别表示只匹配源地址或目标地址为HOST的数据包。
- `port PORT_NUM`: 匹配TCP/UDP端口号等于PORT_NUM的数据包。
- `(expr) and/or/not expr2`: 组合多个条件以实现更复杂的过滤逻辑。
#### 四、实例展示
##### 查看所有HTTP请求响应
```bash
sudo tcpdump -i eth0 port 80
```
##### 获取特定服务器发出的所有ICMP报文
```bash
sudo tcpdump icmp and src 192.168.1.100
```
##### 打印所有通过网关snup的FTP数据包
```bash
sudo tcpdump gateway snup and \(port ftp or ftp-data\)
```
##### 捕捉来自某台机器(如192.168.1.100)的所有通信记录
```bash
sudo tcpdump src 192.168.1.100
```
以上例子展示了如何利用不同的参数组合来满足实际需求中的各种场景应用[^1][^3]。
阅读全文