首页主机资讯如何用CentOS Sniffer抓包

如何用CentOS Sniffer抓包

时间2025-11-18 14:23:03发布访客分类主机资讯浏览600
导读:在 CentOS 上进行抓包的主流做法 在 CentOS 环境中,所谓“Sniffer”通常指基于 libpcap 的命令行抓包工具。下面给出以 tcpdump 与 dumpcap/tshark 为核心的快速上手与进阶用法,覆盖安装、常用命...

在 CentOS 上进行抓包的主流做法

CentOS 环境中,所谓“Sniffer”通常指基于 libpcap 的命令行抓包工具。下面给出以 tcpdumpdumpcap/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:抓常见应用层协议流量(如 RedisMySQL
      • 安装依赖: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
  • 自动化抓包脚本与定时任务
    • 示例脚本(保存 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
  • 性能与合规提示
    • 长时间抓包请使用 -G/-W 做环形缓冲,避免磁盘打满
    • 抓包会产生额外负载,必要时限制速率、接口与过滤范围
    • 抓包可能涉及敏感数据,务必遵守法律法规与单位网络使用政策

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何用CentOS Sniffer抓包
本文地址: https://pptw.com/jishu/750120.html
CentOS下如何选择合适的Sniffer 如何解读CentOS JS日志中的数据

游客 回复需填写必要信息