ACK 패킷을 표시하지 않음

ACK 패킷을 표시하지 않음

tcpdump -i eth0 -n tcp port 5000두 호스트 사이를 흐르는 모든 패킷을 필터링하려면 다음이 필요합니다 . 그러나 호스트 중 하나는 항상 ACK를 보냅니다.

이 ACK를 어떻게 숨길 수 있나요?

답변1

tcpdump -i eth0 -n 'tcp port 5000 and (tcp[tcpflags] & tcp-ack == 0)'당신이 원하는 것을해야합니다. 물론비트별 합TCP 플래그와 ACK 전용 비트마스크 사이의 값이므로 ACK가 없는 경우 결과는 0과 같아야 합니다.

답변2

grep에 다음 명령을 전달하여 숨길 수 있습니다.

tcpdump -i eth0 -n tcp port 5000 | grep -e ACK -v

-e option is to select a pattern (ACK in your case)
-v (to invert the grep function : grep all except the defined pattern) 

답변3

나는 이것을 man tcpdump 필터 예제에서 직접 복사했습니다:

포트 80 안팎의 모든 IPv4 HTTP 패킷을 인쇄합니다. 즉, 데이터가 포함된 패킷만 인쇄됩니다. 예를 들어 SYN 및 FIN 패킷과 ACK 패킷만 인쇄되지 않습니다. (IPv6는 독자의 연습 문제로 남겨 둡니다.)

tcpdump 'tcp 포트 80 및 (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'

관련 정보