华为交换机抓包是网络故障排查、性能分析和安全审计的重要手段,通过抓包可以捕获经过交换机的数据包,进而分析协议交互、定位故障原因或检测异常流量,华为交换机支持多种抓包方式,包括本地抓包、远程抓包(通过镜像端口)以及基于CLI的命令行抓包,不同场景下需选择合适的命令和参数,以下从基础概念、常用命令、配置步骤、注意事项及高级应用等方面详细介绍华为交换机的抓包命令。

抓包基础概念与适用场景
在华为交换机中,抓包主要依赖镜像端口(端口镜像)功能,将指定端口的 ingress(入向)和/egress(出向)流量复制到观察端口(连接抓包设备的端口),从而实现流量捕获,常见应用场景包括:
- 故障排查:如用户无法上网、业务延迟高,通过抓包分析TCP握手、重传等情况;
- 协议分析:检查DHCP、OSPF、BGP等协议的交互过程,验证配置正确性;
- 安全审计:捕获异常流量(如DDoS攻击、非法数据包),定位攻击源;
- 性能优化:分析网络带宽利用率,识别大流量业务或拥塞点。
常用抓包命令详解
华为交换机的抓包命令主要通过display
、monitor
、packet-capture
等系列命令实现,不同版本(如VRP V8000、V2000R019C00SPC500等)命令可能略有差异,以下以主流VRP平台为例说明。
本地抓包(直接通过交换机CLI捕获)
适用于无需外部设备、临时快速抓包的场景,命令基于packet-capture
视图。
-
进入抓包视图:
(图片来源网络,侵删)system-view packet-capture interface interface-type interface-number [ inbound | outbound ]
interface-type interface-number
:指定要抓取的端口(如GigabitEthernet 0/0/1);inbound
/outbound
:可选,分别抓取入向流量和出向流量,默认双向。
-
配置抓包参数:
packet-capture buffer buffer-size // 设置抓包缓存大小(单位:KB,默认1024KB,范围64-4096) packet-capture capture-length packet-length // 设置抓包长度(单位:字节,默认128字节,范围64-9600) packet-capture filter { acl acl-number | ip-source ip-address | ip-destination ip-address | mac-source mac-address | mac-destination mac-address } // 设置抓包过滤条件(可选)
- 示例:仅抓取源IP为192.168.1.100的流量,缓存大小2048KB:
packet-capture filter ip-source 192.168.1.100 packet-capture buffer buffer-size 2048
- 示例:仅抓取源IP为192.168.1.100的流量,缓存大小2048KB:
-
开始抓包与导出:
packet-capture start // 开始抓包 display packet-capture buffer // 查看抓包缓存中的数据包摘要 save packet-capture buffer: filename // 保存抓包数据到本地(如flash:/capture.pcap)
抓包文件可通过FTP/TFTP下载到分析工具(如Wireshark)。
远程抓包(镜像端口配置)
当需要通过外部设备(如服务器、笔记本)抓包时,需配置镜像端口,将目标端口流量复制到观察端口。

-
配置本地镜像(端口镜像):
mirroring-group group-id local // 创建本地镜像组(group-id为1-2) mirroring-group group-id mirroring-port interface-type interface-number // 配置镜像源端口(被监控端口) mirroring-group group-id monitor-port interface-type interface-number // 配置观察端口(连接抓包设备的端口)
- 示例:将GigabitEthernet 0/0/1和GigabitEthernet 0/0/2的流量镜像到GigabitEthernet 0/0/24:
mirroring-group 1 local mirroring-group 1 mirroring-port GigabitEthernet 0/0/1 mirroring-group 1 mirroring-port GigabitEthernet 0/0/2 mirroring-group 1 monitor-port GigabitEthernet 0/0/24
- 示例:将GigabitEthernet 0/0/1和GigabitEthernet 0/0/2的流量镜像到GigabitEthernet 0/0/24:
-
配置远程镜像(跨设备抓包):
若目标端口与观察端口不在同一台交换机,需配置远程镜像(基于GRE/VLAN隧道),适用于分布式组网场景:// 在源交换机上配置 mirroring-group group-id remote-source // 创建远程镜像组 mirroring-group group-id mirroring-port interface-type interface-number mirroring-group group-id remote-pe-pe-address ip-address // 指定远端PE设备IP mirroring-group group-id reflector-port interface-type interface-number // 反射端口(用于接收远端镜像流量)
- 远端交换机需配置对应的
mirroring-group group-id remote-destination
和monitor-port
。
- 远端交换机需配置对应的
基于ACL的过滤抓包
为避免抓取无关流量,可通过ACL(访问控制列表)精确过滤目标流量,提升抓包效率。
- 配置ACL规则:
acl number 3000 // 基本ACL或高级ACL(3000-3999为基本,4000-4999为高级) rule 5 permit ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255 // 示例:允许192.168.1.0/24网段访问192.168.2.0/24的流量 rule 10 deny // 拒绝其他流量(可选)
- 将ACL应用于抓包:
packet-capture filter acl 3000 // 在抓包视图中应用ACL过滤
抓包配置步骤示例(完整流程)
以本地抓包为例,假设需要抓取交换机GigabitEthernet 0/0/1端口的入向流量,并保存为文件:
-
进入系统视图:
system-view
-
进入抓包视图并指定端口:
packet-capture interface GigabitEthernet 0/0/1 inbound
-
配置缓存和过滤条件:
packet-capture buffer buffer-size 2048 // 设置2GB缓存 packet-capture filter ip-source 192.168.1.100 // 仅抓取源IP为192.168.1.100的流量
-
开始抓包并等待:
packet-capture start
- 此时交换机开始捕获流量,可通过
display packet-capture buffer
实时查看数据包数量(如“Packet count: 100”)。
- 此时交换机开始捕获流量,可通过
-
停止抓包并保存:
packet-capture stop // 停止抓包 save packet-capture buffer: flash:/user_capture.pcap // 保存到flash,文件名自定义
-
导出抓包文件:
- 通过FTP上传文件到分析设备:
ftp server-ip // 登录FTP服务器 put flash:/user_capture.pcap // 上传文件
- 通过FTP上传文件到分析设备:
注意事项与常见问题
-
性能影响:
- 长时间抓包或高流量场景下,镜像端口可能成为瓶颈,建议观察端口使用高速率接口(如10GE);
- 本地抓包会占用交换机CPU和内存资源,避免在业务高峰期抓取大流量。
-
镜像端口限制:
- 一台交换机最多支持8个镜像组,每个观察端口只能属于一个镜像组;
- 远程镜像需确保PE设备间路由可达,并配置GRE隧道封装。
-
过滤优化:
- 尽量使用ACL过滤,减少无关数据包,避免缓存溢出(
buffer-size
不足时,旧数据包会被覆盖); - 抓包长度
capture-length
建议设置为“0”(默认,即抓取完整数据包),仅分析协议首部时可缩短以提升效率。
- 尽量使用ACL过滤,减少无关数据包,避免缓存溢出(
-
文件格式兼容性:
- 华为交换机保存的
.pcap
文件兼容Wireshark、Ethereal等工具,若文件损坏,可尝试reset packet-capture buffer
清空缓存后重新抓包。
- 华为交换机保存的
高级应用:基于时间段抓包与流量统计
-
定时抓包:通过
schedule
命令设置抓包起止时间,避免人工值守:packet-capture start time 2023-10-01 10:00:00 packet-capture stop time 2023-10-01 11:00:00
-
流量统计与抓包结合:使用
display interface
查看端口流量趋势,定位异常时间段后再抓包:display interface GigabitEthernet 0/0/1 // 查看端口输入/输出速率、错误包数
相关问答FAQs
问题1:华为交换机抓包时提示“buffer is full”,如何解决?
解答:“buffer is full”表示抓包缓存已满,旧数据包被新数据覆盖,解决方法:
- 增大缓存大小:执行
packet-capture buffer buffer-size 4096
(最大支持4096KB); - 启用ACL过滤,仅抓取目标流量(如
packet-capture filter acl 3000
); - 缩短抓包时间或实时导出文件(通过
save
命令定期保存)。
问题2:远程镜像抓包时,观察端口无法收到流量,如何排查?
解答:可按以下步骤排查:
- 检查镜像组配置:确认源端口、观察端口是否正确加入镜像组,且观察端口状态为
UP
; - 检查链路连通性:观察端口与抓包设备间网线、IP配置是否正确,能ping通远端PE设备IP;
- 检查远程镜像隧道:确认源交换机和远端交换机的
remote-source
/remote-destination
配置匹配,GRE隧道是否建立(通过display gre tunnel
查看); - 关闭观察端口STP:避免STP阻塞导致流量中断(执行
stp disable
观察端口)。