애플리케이션에서 다른 서버의 다른 애플리케이션으로 전송된 http 헤더를 모니터링하기 위해 CentOS를 실행하는 Linux 서버에서 어떤 도구/기능을 사용할 수 있습니까? 서버에서 서버로 http 헤더 모니터링을 찾고 있습니다. 내 문제는 서버에서 전송된 데이터, 즉 게시물을 통해 전송된 http 헤더를 의미하는 데이터를 캡처하는 방법을 모른다는 것입니다.
다양한 방법과 타사 소프트웨어를 사용해 보았습니다.피들러 2ieinspector 등이 있지만 서버에서 보낸 헤더가 아닌 클라이언트 헤더만 캡처하는 것 같습니다. post 함수를 통해 전송된 문자열과 반환된 내용을 캡처하면 됩니다. 간단해 보이지만 이 경우에는 길을 잃었고 간단한 해결책이 무엇인지 알아낼 시간이 없습니다.
fiddler2를 사용하여 서버에서 클라이언트로의 헤더를 볼 수 있지만 애플리케이션은 다른 서버에서 API를 호출하고 있습니다. 따라서 순서는 클라이언트에서 서버로 - 서버에서 서버로 - 서버에서 서버로 - 서버에서 클라이언트로입니다. 우리 서버에서 다른 서버로 전송된 http 헤더가 올바른지 알 수 있는 방법이 없습니다.
다른 서버의 지원에서는 해당 정보를 캡처할 수 없어 데이터를 공개해야 했습니다. 우리는 무엇을 보내고 있는지 알고 있지만 이를 확인할 방법이 없습니다. 우리가 원하는 것은 서버에 상주하여 이를 추적하고 서버 간 트래픽을 모니터링할 수 있는 fiddler2와 유사한 도구입니다. fiddler2가 이 작업을 수행할 수 있다면 방법을 알려주십시오.
답변1
가장 간단한 방법은 애플리케이션에 로깅을 추가하는 것입니다. 전송 전과 수신 후 헤더를 로그한 다음 로그를 읽습니다. 이것이 유일한 "쉬운" 일이다. 나는 당신이 이것을 할 수 없다고 가정합니다. 분명히 브라우저의 소프트웨어는 인터넷상의 두 원격 시스템 간의 통신을 캡처할 수 없습니다. 다른 모든 것은 더 복잡합니다.
캡처된 패킷을 오프라인(예: Wireshark)으로 재조립하고 싶지 않다고 가정할 때 이를 달성하는 가장 올바른 방법은 두 응용 프로그램 간에 프록시를 설정하는 것입니다. 따라서 시스템은 더 이상 원격 시스템에 직접 연결되지 않고 로컬 프록시에 연결됩니다. 재구성을 수락하지 않으려면 속이십시오(DNS를 로컬에서 프록시로 다시 라우팅한 다음 프록시가 실제 IP에 연결함).
프록시가 둘 사이에 전달하는 모든 내용은 기본적으로 변경되지 않지만 요청 및 응답에 대해 원하는 내용을 기록할 수 있는 기회를 제공합니다. 이는 본질적으로 사용자 간의 스위치에서 요청/응답을 확인할 수 있는 것과 동일합니다.
이는 방해가 되는 변경이므로 올바르게 수정할 때까지 애플리케이션이 중단될 수 있습니다. 따라서 테스트 서버에서 시도해 보시는 것이 좋습니다. 그러면 문제가 있는 콘텐츠를 충분히 규명할 수 있을 것입니다. 추구하고 싶다면 추천드립니다.nginx프록시 데몬 역할을 합니다.
답변2
서버에 대한 루트 액세스 권한이 있는 한 Wireshark 또는 tcpdump를 사용할 수 있습니다.