특정 문자열만 포함된 네트워크 추적을 어떻게 캡처합니까?

특정 문자열만 포함된 네트워크 추적을 어떻게 캡처합니까?

RHEL 서버에 어댑터가 설치되어 실행 중인데 어댑터가 연결된 소스에서 특정 신호 메시지가 전송되면 어댑터 연결이 끊어집니다.

소스 IP 주소에서 원시 패킷을 캡처하기 위해 이 유틸리티를 사용하고 있습니다 tcpdump. 그러나 이를 사용할 때의 문제점은 tcpdump내가 관심 없는 트래픽을 포함하여 소스의 모든 패킷을 지속적으로 캡처한다는 것입니다.

이로 인해 내 어댑터와 원본 서버 간의 통신에 사용되는 이 특정 포트의 원본 IP 주소에서 많은 데이터가 들어오기 때문에 엄청난 디스크 공간 활용이 발생합니다.

특정 문자열이 있는 패킷만 캡처하는 데 사용할 수 있는 방법이나 기본 Linux 유틸리티가 있습니까?이벤트 손실그러면 결국에는 이러한 메시지가 포함된 패킷만 캡처하게 되는 것인가요?

다양한 옵션을 검색했지만 tcpdump이 유틸리티를 사용하여 원하는 결과를 얻을 수 있는 방법을 찾지 못했습니다.

답변1

"tshark"(wireshark의 일부)를 사용하고 "contains/matches" 표시 필터를 사용하여 문자열을 찾을 수 있습니다. TCP 패킷이라고 가정하면 필터는 다음과 같습니다.

tshark -Y 'tcp contains "eventLossOccurred"'

"일치"를 사용하면 Perl 정규식을 지정할 수 있습니다.

NOTE:이는 패킷 세부 정보만 표시하며 PCAP 형식의 전체 패킷 덤프를 캡처하는 데 사용할 수 없습니다. 필요한 세부 정보를 표시하도록 tshark 옵션을 수정하세요.

관련 정보