您的位置:

Tshark: 快速而强大的网络数据包分析工具

一、Tshark 中文

Tshark是Wireshark网络协议分析器的命令行版本,它为您提供了用于网络故障排除、网络测试和协议教育的快速而强大的工具。

Tshark支持多种包的捕捉格式,包括tcpdump捕捉文件(以pcap格式保存),网络接口和Wireshark捕捉文件。它可以用于实时捕获和离线阅读 pcap /f pcap-ng文件,并将捕获结果解析出各个网络协议的详细信息。

# 安装tshark命令:
sudo apt-get install tshark
# 查看tshark命令行界面的中文帮助:
tshark -h | grep -P "\-\|.+?\|"

二、tshark抓包过滤

tshark支持多种过滤条件,以便您可以轻松地从大量的网络数据包中过滤出所需的数据包,提高故障诊断的效率。

tshark操作的过滤条件格式相对灵活,可以通过协议类型、源地址、目的地址、端口号等多种维度进行过滤。

# 查看所有HTTP请求包:
tshark -r sample.pcap -Y "http.request"
# 查看某个IP地址的所有数据包:
tshark -r sample.pcap -Y "ip.addr == 192.168.1.2"
# 查看某个端口号的所有数据包:
tshark -r sample.pcap -Y "tcp.port == 80"
# 过滤出SSL连接数据包:
tshark -r sample.pcap -Y "ssl.handshake"

三、Tshark utf8

默认情况下,tshark输出的协议分析信息都是以ASCII编码形式呈现出来的。如果需要输出utf8编码的内容,可以通过设置环境变量实现。

# UNIX/Linux系统下设置utf8环境变量:
export LC_ALL=C.UTF-8
# Windows系统下设置utf8环境变量:
set LC_ALL=C.UTF-8

四、tshark和wireshark关系

tshark是wireshark的一个命令行版本,两者都是基于libpcap库的。

wireshark提供了强大的图形用户界面,可以通过图形操作实现数据包捕获、分析、过滤等功能;而tshark则是在命令行下提供了同样的功能,适合在服务器端、远程终端等场景下使用。

五、tshark不能读取tls

tshark不能直接读取加密协议TLS的数据包,它只能读取加密前和加密后的数据包。如果需要读取TLS中的数据包,可以通过在wireshark中对数据包进行解密后再导出到pcap文件,再使用tshark对解密后的pcap文件进行分析。

六、shark

tshark本质上是一款命令行版本的抓包和分析工具,它可以与其他工具结合使用,帮助网络管理员和开发人员更好地进行网络数据包分析和管理。

在使用tshark的时候,可以通过-t选项指定输出格式,将结果输出为XML、JSON等多种格式,并将结果通过pipe传输到其他工具进行进一步的分析处理。

# 输出结果为json格式:
tshark -r sample.pcap -T json | jq .
# 输出层级结构嵌套的XML格式:
tshark -r sample.pcap -T pdml | xmllint --format -