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

관련 정보