저는 수신 대기하는 간단한 API를 갖고 http://localhost:5000
있으며 Nginx는 역방향 프록시로 수신 대기하고 있습니다 https://example.com
.
내 API에 헤더를 보내도록 Nginx를 구성했습니다.
location /
{
proxy_pass http://localhost:5000;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
}
http://
그러나 내 JWT 공급자 라이브러리가 나를 로 리디렉션하기 때문에 여기서 뭔가 작동하지 않습니다 https://
. 문제가 Nginx와 내 API 사이에 있는 것 같습니다.
API 포트에서 HTTP 트래픽을 모니터링하거나 기록하는 간단한 명령줄 유틸리티가 필요합니다.
나는 다음 질문을 보았지만 어느 것도 내 요구 사항에 맞지 않는 것 같았습니다. (그리고 그것들도 꽤 오래되었습니다):
https://superuser.com/questions/604998/monitor-tcp-traffic-on-특이적-port
시도해 보았지만 tcpdump
웹 개발자로서 출력을 읽을 수 없습니다. HTTPie
출력과 같은 것을 찾고 있습니다 .
https://superuser.com/questions/23180/whats-the-easiest-way-to-sniff-tcp-traffic-data-on-linux
사실 제목을 갖고 싶었어요. 이 질문은 데이터 자체에 관한 것입니다.
https://askubuntu.com/questions/257263/how-to-display-network-traffic-in-the-terminal
이 모든 응용 프로그램은통계자료인터넷과 관련이 있습니다. 요청/응답이 아닙니다.
그렇다면 HTTP 요청/응답 헤더와 본문을 출력하고 이를 캡처하여 터미널이나 파일에 인쇄할 수 있는 간단한 유틸리티가 있습니까?
내 서버가 Debian 11을 실행하고 있습니다.
답변1
HTTPie 또는 Fiddler와 달리 프록시와 API 서버 사이의 패킷 캡처 프로그램은 어떤 패킷이 디버그 세션의 일부인지, 어떤 패킷이 관련 없는 요청인지 직접 알 수 없습니다.
tcpdump
캡처된 덤프를 캡처하고 분석하려면 Wireshark 또는 유사한 도구를 사용하는 것이 좋습니다 . 다음과 같은 것이 필요합니다 tcpdump -i any -Knpv -w /some/where/output.cap tcp port 5000
.
Wireshark를 사용하면 덤프 파일을 열고 패킷을 선택한 다음 마우스 오른쪽 버튼을 클릭하면 나타나는 컨텍스트 메뉴에서 "Follow -> TCP Stream"을 선택할 수 있습니다. 그러면 클라이언트와 서버 간의 대화(클라이언트 요청과 모든 헤더, 서버 응답과 헤더)가 제공됩니다.