Đây là một cách khác để làm điều đó bằng cách sử dụng tshark
. Ý tưởng giống như câu trả lời từ @artistoex - sự khác biệt là nó không xem xét từng nửa kết nối và đầu ra là số luồng TCP (từ Wireshark / tshark) có thể dễ dàng hoạt động hơn khi bạn muốn mở luồng đó trong Wireshark và tiếp tục đăng quá trình ở đó.
tshark -r pcap_file.pcap -R "tcp.flags & 0x03" -Tfields -etcp.stream |
sort -n | uniq -c | awk -F ' ' '{ if ($1<4) print $1," ", $2 }'
Bộ lọc hiển thị thực hiện giống như bộ lọc chụp từ câu trả lời khác, nó sử dụng thực tế là các bit SYN và FIN là hai trong số các bit có trọng số thấp nhất trong trường cờ TCP, vì vậy nếu cả hai được đặt 0b11
hoặc là 0x3
. VÀ-ing tcp.flags
lĩnh vực với 0x3
sẽ cung cấp các giá trị khác không nếu một trong hai cờ được đặt.
tshark
xuất số luồng TCP cho mỗi gói ở đây. Chúng tôi sắp xếp chúng và đếm các số duy nhất. Bước cuối cùng chỉ in các dòng trong đó số lượng gói cho luồng này nhỏ hơn 4 (1 SYN và 1 FIN cho mỗi nửa hướng).
Sau đó, bạn có thể mở Wireshark với
wireshark -r pcap-file -R "tcp.stream eq 1234"
1234 là từ lệnh trước.
Đẹp? Tôi đoán là không.
Nhanh? Không...