一、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 -