tcpdump를 사용하여 TCP 요청을 다시 생성할 수 있습니까?

tcpdump를 사용하여 TCP 요청을 다시 생성할 수 있습니까?

백엔드 서버를 개발 중입니다. 백엔드 아키텍처는 다음과 같습니다.

APP --> Server1 --> Server2 --> Server3 --> MyServer

APP는 백엔드에 HTTP 요청을 보내고 Server1백엔드 서버는 TCP 프로토콜 기반 RPC를 사용하여 통신합니다.

개발 중인데 아직 작업이 완료되지 않았기 때문에 항상 사용할 수 없는 MyServer많은 테스트를 수행해야 합니다 .Server3

Server1저는 RPC가 무엇 인지 몰랐고 Server2실제로 그렇게 했습니다. RPC는 Server3정말 복잡했고, 여기에는 제가 알지 못했던 많은 매개변수가 포함되어 있었습니다. 필요한 것은 요청을 캡처하고 해당 내용을 스크립트에 복사하여 스크립트를 실행하여 요청을 시뮬레이션하는 것입니다.Server3MyServerServer3

예를 들어 보겠습니다.

Server3매개 MyServer변수가 있는 RCP 가 전송됩니다 . 저는 그게 제가 관심 있는 전부이기 때문에 을 처리하고 새 매개변수를 생성 하고 을 다른 서버로 보냅니다 . 그래서 필요할 때 테스트할 수 있도록 RPC를 모의해야 합니다 .p1p2p3p3p3p4p1p2p4Server3MyServer

계약에 대하여

우리 팀은 RPC를 위한 자체 프로토콜이 포함된 독점 프레임워크를 사용합니다. 내가 아는 것은 프로토콜이 HTTP가 아닌 TCP를 기반으로 한다는 것뿐입니다. 따라서 나에게 필요한 것은 요청을 캡처 Server3하고 필요할 경우 재생하는 것입니다.

답변1

HTTP를 다루는 경우 더 나은 도구 tcpdump는 "투명 프록시"입니다. 그런 다음 요청을 다시 실행할 수도 있습니다.

Google 주변에는 투명한 프록시가 많이 있습니다.

예를 들면 mitmproxy다음과 같습니다.재생 요청.

관련 정보