Reverse Proxy로 HTTP 프록시 미지원 앱의 HTTP/HTTPS 캡처 방법
이 글에서는 Reverse Proxy 도구를 사용해 HTTP 프록시를 지원하지 않는 앱이나 클라이언트의 HTTP/HTTPS 트래픽을 캡처하는 방법을 보여드립니다.
Reverse Proxy가 해결하는 문제는 무엇인가요?
애플리케이션이나 클라이언트가 기본적으로 HTTP 프록시를 지원하지 않으면, Proxyman은 해당 트래픽을 캡처할 수 없습니다.
다음은 HTTP 프록시를 지원하지 않거나 별도의 설정이 필요한 라이브러리와 환경의 예시입니다.
- cURL
- NodeJS의
fetch또는axios - Python 라이브러리의
request - Android TV 박스
- 임베디드 기기
- 오래된 네트워크 C 라이브러리
- ...
Reverse Proxy를 사용하면 이런 트래픽도 캡처할 수 있습니다.
사용 방법
사전 요구 사항
- 앱이나 클라이언트가 HTTP 프록시를 지원하지 않음
- Proxyman으로 앱이나 클라이언트의 트래픽을 전혀 캡처하지 못함
- 앱이나 클라이언트의 소스 코드에 접근할 수 있음
설명을 위해 cURL 명령줄 도구를 사용하겠습니다.
cURL은 기본적으로 프록시를 사용하지 않으므로, Proxyman은 이 트래픽을 캡처할 수 없습니다.
cURL은 설명을 위해 선택한 예시입니다. Reverse Proxy 도구를 사용하지 않고 cURL이 프록시를 사용하도록 하려면 --proxy localhost:9090 플래그를 사용할 수 있습니다.

- 서버 주소가 https://producthunt.com이라고 가정합니다.
- Proxyman을 열고 Tools 메뉴 → Reverse Proxy를 선택합니다.
- 다음 정보로 새 규칙을 만듭니다.
- Name: Map to Production
- 로컬 포트: 10000
- 원격 호스트:
<your real server> - 원격 포트: 443 (HTTPS)

- 저장합니다.
- 앱이나 클라이언트의 소스 코드를 열고 Base URL을
localhost:10000으로 변경합니다. - 앱이나 클라이언트를 실행합니다.
- Proxyman에서 트래픽을 확인합니다.

보시다시피 --proxy localhost:9090 플래그를 사용하지 않아도 Proxyman이 cURL의 트래픽을 캡처할 수 있습니다.
- HTTPS를 사용하려면
https://localhost:10000을 사용하세요. - HTTP를 사용하려면
http://localhost:10000을 사용하세요.
결론
일부 애플리케이션은 기본적으로 HTTP 프록시를 지원하지 않아 Proxyman이 트래픽을 캡처하지 못할 수 있습니다. 하지만 Reverse Proxy를 사용하면 이 문제를 해결할 수 있습니다.
클라이언트가 지원한다면 먼저 명시적인 프록시 설정이나 Proxyman Automatic Setup을 시도하세요. 클라이언트의 Base URL은 바꿀 수 있지만 프록시는 설정할 수 없을 때 Reverse Proxy를 선택하세요. 로컬 포트가 비어 있는지 확인하고, Preserve Host는 원격 서버가 원래 Host 헤더를 필요로 할 때만 사용하세요. 일치하지 않는 값을 보내면 서버가 요청을 거부할 수 있습니다.
이 짧은 글이 작업을 체계적으로 정리하는 데 도움이 되기를 바랍니다. 즐거운 코딩 되세요! 👨🚀
Proxyman은 고성능 macOS 앱으로, 개발자가 iOS 기기, iOS 시뮬레이터, Android 기기에서 실행되는 앱과 도메인의 HTTP(S) 트래픽을 캡처하고 검사할 수 있게 해 줍니다.
https://proxyman.com/에서 다운로드할 수 있습니다.
