首页/网络/网络排障速查/按 TCP 标志位过滤(SYN/RST/FIN)
本包目录(235 条)

按 TCP 标志位过滤(SYN/RST/FIN)

抓握手、拆连接与复位:用 tcp[tcpflags] 位运算表达式筛 SYN、RST、FIN、PSH;tcpdump 内置 tcp-syn/tcp-ack 等名称,可读性更好。

网络排障速查网络更新于 2026-10-12

标志位过滤

标志位过滤
tcpdump -nn -i eth0 'tcp[tcpflags] & tcp-syn != 0'            # 任意含 SYN
tcpdump -nn -i eth0 'tcp[tcpflags] == tcp-syn'               # 纯 SYN(握手第一包)
tcpdump -nn -i eth0 'tcp[tcpflags] & tcp-rst != 0'           # RESET
tcpdump -nn -i eth0 'tcp[tcpflags] & tcp-fin != 0'           # 拆连接
tcpdump -nn -i eth0 'tcp[tcpflags] & (tcp-syn|tcp-ack) == (tcp-syn|tcp-ack)'  # SYN-ACK

名称与位

名称含义
tcp-syn建立连接(0x02)
tcp-ack确认
tcp-fin正常关闭(0x01)
tcp-rst复位(0x04)
tcp-push推送数据
tcp-urg紧急指针
排查「为什么连不上」先抓纯 SYN 看对端是否回 SYN-ACK 或 RST,一步就能把问题分层到网络/端口/服务。

易错点

  • 把 tcp[13] 的字节偏移硬编码在新表达式里,忘记 IP 选项会导致偏移错位(用 tcp[tcpflags] 更稳)
  • 在 VLAN/隧道环境下直接位运算匹配:偏移基准不同,匹配不到

数据来源与参考

  • pcap-filter(7):tcp[tcpflags] 与标志名
  • RFC 9293:TCP 首部标志位

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌