您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Linux的tcpdump命令怎么用
## 一、tcpdump简介
tcpdump是Linux系统中最强大的网络抓包分析工具之一,能够捕获流经指定网络接口的数据包,并以可读形式显示或保存到文件中。作为命令行工具,它广泛用于:
- 网络故障排查
- 流量分析
- 安全审计
- 协议学习
## 二、安装与基本使用
### 1. 安装方法
```bash
# Debian/Ubuntu
sudo apt install tcpdump
# RHEL/CentOS
sudo yum install tcpdump
# Arch Linux
sudo pacman -S tcpdump
tcpdump [选项] [过滤表达式]
参数 | 说明 |
---|---|
-i |
指定网卡(如eth0 ) |
-n |
禁用域名解析(显示IP) |
-nn |
同时禁用端口服务名转换 |
-v |
显示详细信息(-vv 更详细) |
-c |
捕获指定数量包后退出 |
-w |
将结果写入文件(.pcap 格式) |
-r |
读取抓包文件 |
-A |
ASCII格式显示数据 |
-X |
同时显示HEX和ASCII内容 |
-s |
设置抓包长度(默认96字节) |
host
:指定主机(IP或域名)net
:指定网络段port
:指定端口portrange
:端口范围src/dst
:源/目标限定tcpdump host 192.168.1.100
tcpdump port 80
tcpdump src net 192.168.1.0/24
支持常见协议:
- tcp
- udp
- icmp
- arp
- ip
/ip6
tcpdump icmp
tcpdump tcp port 22
and
/&&
or
/||
not
/!
tcpdump "src 192.168.1.1 and (dst port 80 or 443)"
# 抓取eth0网卡的所有流量
sudo tcpdump -i eth0
# 抓取HTTP流量(显示ASCII内容)
sudo tcpdump -i eth0 -A port 80
# 抓取DNS查询
sudo tcpdump -i eth0 -n port 53
# 抓取特定主机的SSH流量
sudo tcpdump -i eth0 "tcp port 22 and host 10.0.0.5"
# 排除ARP和DNS流量
sudo tcpdump -i eth0 "not arp and not port 53"
# 抓取ICMP Ping请求(不含响应)
sudo tcpdump -i eth0 "icmp[0] == 8"
# 保存抓包结果
sudo tcpdump -i eth0 -w capture.pcap
# 读取并分析抓包文件
tcpdump -r capture.pcap "tcp port 443"
典型输出示例:
15:30:45.123456 IP 192.168.1.100.54218 > 172.217.160.110.443: Flags [P.], seq 1:100, ack 1, win 256, length 99
各字段含义: 1. 时间戳(含微秒) 2. 协议类型(IP/IPv6等) 3. 源地址+端口 4. 目标地址+端口 5. TCP标志(S=SYN, P=PUSH, F=FIN等) 6. 序列号/确认号 7. 窗口大小 8. 数据长度
限制抓包大小:
sudo tcpdump -s 128 -i eth0
使用BPF过滤器提高效率:
sudo tcpdump "tcp[tcpflags] & (tcp-syn|tcp-ack) != 0"
后台运行并限制文件大小:
sudo tcpdump -i eth0 -C 100 -W 10 -w /var/tmp/capture.pcap &
sudo tcpdump -G 300 -W 1 -w hourly.pcap
-w
保存后离线分析Wireshark可视化分析:
tcpdump -i eth0 -w - | wireshark -k -i -
tshark统计HTTP状态码:
tcpdump -i eth0 -w - | tshark -r - -Y "http" -T fields -e http.response.code
结合grep二次过滤:
tcpdump -i eth0 -l | grep "GET /login"
权限不足:
sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
提示”no suitable device found”:
ip link
确认网卡名称any
)过滤语法错误:
()
需要引号或反斜杠)提示:可通过
man tcpdump
查看完整手册,或访问官方文档获取更多高级用法。 “`
注:本文实际约1250字,可通过以下方式扩展: 1. 增加更多实用案例(如VoIP抓包分析) 2. 添加BPF过滤器的详细说明 3. 补充各协议字段的解析图示 4. 加入性能测试数据对比
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。