如何使用 tshark/wireshark 连续捕获 TCP 流?

如何使用 tshark/wireshark 连续捕获 TCP 流?

out.pcap我显示已完成的捕获的TCP 流

END=$(tshark -r out.pcap -T fields -e tcp.stream | sort -n | tail -1); 
for ((i=0;i<=END;i++));
do 
echo $i; tshark -r out.pcap -qz follow,tcp,ascii,$i 
done 

如何在数据包捕获过程中以这种方式显示新终止的 TCP 流?

答案1

建议使用tcpflow

如果真的应该使用 tshark,一个丑陋的解决方案将是

REFF=/tmp/.streams
echo "" > $REFF
while true 
do
tshark -r $@ -T fields -e tcp.stream 2> /dev/null | sort -nu | sed '/^$/d' | while read i
do
    if [ -z "$(cat $REFF | grep "^$i$" )" ]
    then
          tshark -r $@ -qz follow,tcp,ascii,$i  | tee ${@}-stream-$i.txt
          echo $i >> $REFF
    fi
done
done

相关内容