You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让tshark将tcp.payload以ASCII明文形式显示?

解决tshark显示TCP载荷为ASCII明文的问题

以下两种方法可以实现将tcp.payload的十六进制结果转为ASCII明文:

方法1:直接转换十六进制为原始字节(显示可打印ASCII)

使用tshark提取十六进制载荷后,通过xxd工具反转十六进制为原始字节流,终端会自动渲染可打印的ASCII字符:

tshark -r pcap -T fields -e tcp.payload | xxd -r -p

注:不可打印的控制字符会显示为终端默认的占位符(比如^@类符号)。

方法2:只保留可打印ASCII字符

如果需要过滤掉不可打印的字符,在上述命令后加上tr工具过滤:

tshark -r pcap -T fields -e tcp.payload | xxd -r -p | tr -dc '[:print:]\n'

tr -dc '[:print:]\n'会保留所有可打印字符和换行符,剔除其他字符。

补充说明:为什么data/data.text返回空?

tshark中的data字段对应应用层已解析的数据,只有当Wireshark能识别数据包的上层协议(比如HTTP、DNS)并成功解析时,这个字段才会有值。如果是自定义协议、未识别协议或者TCP载荷本身就是原始字节流,data字段就会为空,这时候只能用tcp.payload提取TCP层的原始载荷。

内容的提问来源于stack exchange,提问作者arnby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 12:46:58