为什么tcpdump抓包tcp校验和不对
·
Table of Contents
tcpdump 抓包tcp校验和错误 (checksum incorrect)
cksum 0x7f33 (incorrect -> 0x3a5e) 表示校验和计算错误
这通常是 校验和卸载 (Checksum Offloading) 导致的
网卡在硬件层面计算校验和,但抓包时数据包还在内核队列中,校验和尚未计算
解决方案
禁用校验和卸载(推荐)
# 临时禁用 TX 校验和卸载
sudo ethtool -K enp0s31f6 tx off
# 临时禁用 RX 校验和卸载
sudo ethtool -K enp0s31f6 rx off
tcpdump 忽略校验和错误
sudo tcpdump -i enp0s31f6 -v -n not tcp port 22 # 忽略校验和警告
永久禁用校验和卸载
ethtool -K enp0s31f6 tx off rx off