Я использую TCPDUMP для захвата трафика с определенного IP-адреса. Есть ли возможность захватывать только новые соединения, то есть потоки TCP, которые начинаются с пакета SYN?
Спасибо
Чтобы перехватить только TCP SYN-пакеты:
# tcpdump -i <interface> "tcp[tcpflags] & (tcp-syn) != 0"
Следующее будет захватывать пакеты TCP-SYN и SYN-ACK.
tcpdump -i <interface> "tcp[tcpflags] & (tcp-syn) !=0"
Следующее будет только захватывать пакеты TCP-SYN.
tcpdump -i <interface> "tcp[tcpflags] & (tcp-syn) !=0 and tcp[tcpflags] & (tcp-ack) =0"
Причина в том, что пакеты SYN-ACK включают флаги SYN и ACK. Первый фильтр проверял только наличие SYN-флага.
Если вы хотите фильтровать только входящие сообщения, добавьте параметр -Q in.
tcpdump -i <interface> -Q in "tcp[tcpflags] & (tcp-syn) !=0 and tcp[tcpflags] & (tcp-ack) =0"