如何用CentOS Sniffer抓包
导读:在 CentOS 上进行抓包的主流做法 在 CentOS 环境中,所谓“Sniffer”通常指基于 libpcap 的命令行抓包工具。下面给出以 tcpdump 与 dumpcap/tshark 为核心的快速上手与进阶用法,覆盖安装、常用命...
在 CentOS 上进行抓包的主流做法
在 CentOS 环境中,所谓“Sniffer”通常指基于 libpcap 的命令行抓包工具。下面给出以 tcpdump 与 dumpcap/tshark 为核心的快速上手与进阶用法,覆盖安装、常用命令、BPF 过滤、自动化与合规要点。抓包通常需要 root 或具备 CAP_NET_RAW 能力的账户。
工具选择与安装
- 使用系统自带的包管理器安装即可,常见工具与用途如下:
| 工具 | 用途与特点 | 安装命令 |
|---|---|---|
| tcpdump | 命令行抓包与简单分析,适合服务器环境 | sudo yum install -y tcpdump |
| dumpcap | Wireshark 的命令行抓包引擎,支持环形缓冲、按时间/数量切分 | sudo yum install -y wireshark-cli |
| tshark | Wireshark 的命令行分析器,便于统计与显示过滤 | sudo yum install -y wireshark |
| Wireshark GUI | 图形化抓包与分析(有桌面环境时) | sudo yum install -y wireshark-gnome |
- 如需图形界面抓包,安装完成后可直接运行:sudo wireshark。如无 GUI,可全程使用 tshark/dumpcap。
tcpdump 快速上手
- 查看接口与基本抓包
- 列出可用接口:sudo tcpdump -D
- 抓取指定接口:sudo tcpdump -i eth0
- 抓取前 N 个包:sudo tcpdump -c 100 -i eth0
- 保存与读取
- 保存到文件:sudo tcpdump -w capture.pcap -i eth0
- 读取分析:sudo tcpdump -r capture.pcap
- 显示与内容查看
- 显示 ASCII 内容:sudo tcpdump -A -i eth0
- 提高详细度:sudo tcpdump -vv -i eth0
- 常用过滤表达式(BPF)
- 按主机:sudo tcpdump host 192.168.1.10
- 按端口:sudo tcpdump port 80
- 组合条件:sudo tcpdump host 192.168.1.10 and port 80
- 仅 TCP:sudo tcpdump tcp
- 排除端口:sudo tcpdump ‘port 80 and not port 22’
- 实用提示
- 使用 -n/-nn 禁止解析主机名/端口名,提升性能与可读性
- 需要链路层信息时加 -e(显示 MAC 等)
dumpcap 与 tshark 的使用
- dumpcap(更适合长时间稳定抓包与自动分段)
- 抓取所有接口:sudo dumpcap -i any -w capture.pcap
- 限制数量:sudo dumpcap -i any -c 100 -w capture.pcap
- 按时间切分(每 10 秒一个文件,最多 10 个):sudo dumpcap -i any -G 10 -W 10 -w cap_time.pcap
- 使用 BPF 过滤:sudo dumpcap -i any ‘tcp’ -w capture_tcp.pcap;sudo dumpcap -i any ‘port 80’ -w capture_http.pcap
- tshark(命令行分析,便于统计与导出)
- 实时抓包并写入文件:sudo tshark -i eth0 -w packet.pcap
- 读取并查看详情:sudo tshark -r packet.pcap -V
- 读取并显示十六进制:sudo tshark -r packet.pcap -x
- 按显示过滤器仅显示 HTTP:sudo tshark -r packet.pcap -R “http”
进阶与自动化
- 协议“定向嗅探”工具(需额外安装)
- go-sniffer:抓常见应用层协议流量(如 Redis、MySQL)
- 安装依赖:sudo yum install -y libpcap-devel
- 示例:go-sniffer eth0 redis;go-sniffer eth0 mysql -p 3306
- mysql-sniffer:专抓 MySQL 查询
- 安装依赖:sudo yum install -y libpcap libpcap-devel
- 示例:git clone …/mysql-sniffer & & make & & ./mysql-sniffer -i eth0
- go-sniffer:抓常见应用层协议流量(如 Redis、MySQL)
- 自动化抓包脚本与定时任务
- 示例脚本(保存 100 个包到 /tmp/output.pcap):
- #!/bin/bash INTERFACE=“eth0” PACKETS=100 OUTPUT=“/tmp/output.pcap” sudo tcpdump -i “$INTERFACE” -c “$PACKETS” -w “$OUTPUT”
- 赋权与运行:chmod +x sniffer.sh & & ./sniffer.sh
- 定时执行(每天 01:00):0 1 * * * /path/sniffer.sh > > /path/log.txt 2> & 1
- 示例脚本(保存 100 个包到 /tmp/output.pcap):
- 性能与合规提示
- 长时间抓包请使用 -G/-W 做环形缓冲,避免磁盘打满
- 抓包会产生额外负载,必要时限制速率、接口与过滤范围
- 抓包可能涉及敏感数据,务必遵守法律法规与单位网络使用政策
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何用CentOS Sniffer抓包
本文地址: https://pptw.com/jishu/750120.html
