TCPDUMP仅捕获新连接


9

我正在使用TCPDUMP捕获来自特定IP地址的流量。是否有可能仅捕获新连接,即以SYN数据包开头的TCP流?

谢谢


不幸的是没有。tcpdump只捕获到达的数据包,它不维护任何会话信息来区分TCP流。如果要分离流,则需要在Wireshark中分析捕获(例如,可以按流号排序)。
马克·里德尔

请注意,TCP 3-Way握手的前两个数据包中的SYN位置1。因此,此筛选器将匹配所有新的建立连接的尝试,而不仅仅是新建立的连接。如果不知何故(软件规则),连接也将被显示。
天使

Answers:


7

只捕获TCP SYN数据包:

# tcpdump -i <interface> "tcp[tcpflags] & (tcp-syn) != 0"

3
那将不会捕获新会话的所有流量。它只会捕获SYN数据包。
user5870571 '16

1

以下将捕获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"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.