我想使用 libpcap 检测系统中被拒绝的任何连接。
我尝试使用下一个过滤器来做到这一点:
"tcp[tcpflags] & (tcp-rst) == (tcp-rst)"
但是 REST 标志并不能确保连接被拒绝,它也可以指示连接刚刚关闭。
有办法做到吗?
TCP 连接可能无法启动、主动拒绝或干脆忽略。
您明确要求“拒绝”,因此这意味着您需要添加
icmp-unreach
和 icmp6-destinationrunreach
。
我一般建议使用 Wireshark/Tshark 过滤器,而不是使用 tcpdump 过滤器,因为 pcap 过滤器只能检测“主动拒绝”,而不能检测“无响应/ TCP SYN 忽略”,另请参阅 https://www.wireshark .org/docs/dfref/t/tcp.html
用它来调试由 icmp 回复引起的
Connection refused
错误:
tcpdump -nvi any icmp[icmptype] = icmp-unreach