
New releaseJul 31, 2026
oproxy v0.1.10
네트워크 트래픽을 가로채고, 검사하고, 모의 처리하는 오픈소스 MITM 프록시
oproxy
oproxy는 트래픽을 검사, 재생 및 수정하기 위한 로컬 HTTP, HTTPS, SOCKS5 프록시입니다.
자체 머신이나 로컬 Docker 컨테이너에서 브라우저, CLI, 모바일 앱, API 클라이언트, 서비스 및 테스트 스위트를 테스트하는 개발자를 위한 도구입니다.
기능
- 로컬 oproxy CA를 신뢰한 후 HTTP 트래픽과 HTTPS 트래픽을 캡처합니다.
- 요청, 응답, 헤더, 본문, 상태, 타이밍, 태그, 메모 및 선택된 인스펙터 데이터를 봅니다.
- 캡처된 요청을 재생하고 Compose에서 엽니다.
- 헤더, 쿼리 매개변수, 인증, 원시 본문, 변수, 컬렉션 및 cURL 내보내기로 수동 요청을 빌드합니다.
- 캡처를 HAR 또는 생성된 cURL, Fetch, Python 스니펫으로 내보냅니다.
- 규칙 집합, map-remote, map-local, 액세스 규칙, 스로틀링, 중단점, 목(mock) 응답, DNS 오버라이드, 캡처 필터, Lua 스크립트 및 업스트림 프록시 체이닝으로 트래픽을 수정합니다.
- 인증된 Assistant를 사용하여 상태를 검사하고 OpenAI 호환 채팅 모델을 통해 확정된 프록시 변경 사항을 준비합니다.
- CA 자료와 로컬 상태를 위한 영구 볼륨과 함께 소스 또는 Docker에서 실행합니다.
데모
빠른 시작
Docker
docker run --rm \
--name oproxy \
-p 127.0.0.1:8080:8080 \
-p 127.0.0.1:8443:8443/udp \
-e OPROXY_BIND_HOST=0.0.0.0 \
-e OPROXY_MITM_ENABLED=true \
-e OPROXY_HTTP3_ENABLED=true \
-e OPROXY_HTTP3_PORT=8443 \
-e OPROXY_ALLOW_REMOTE_ADMIN=true \
-e OPROXY_ADMIN_TOKEN=<change-me-to-a-strong-secret> \
-v oproxy-certs:/app/certs \
-v oproxy-storage:/app/storage \
ghcr.io/sauravrao637/oproxy:latest
http://127.0.0.1:8080을 열고 토큰으로 로그인합니다.
또는 로컬에서 빌드:
docker build -t oproxy:latest .
Docker Compose
docker compose up --build
포함된 Compose 파일은 루프백 게시 포트가 있는 브리지 네트워킹을 사용하고 /app/certs 및 /app/storage를 유지하며 OPROXY_BIND_HOST=0.0.0.0을 설정합니다. Linux 사용자는 선택적으로 호스트 네트워킹을 활성화할 수 있습니다.
소스
요구 사항:
- Rust 1.85 이상
- Node.js 22 이상
- Corepack을 통한 Yarn
corepack enable
yarn --cwd src/design install --frozen-lockfile
yarn --cwd src/design build
cargo run --release
http://127.0.0.1:8080을 엽니다.
첫 번째 요청
curl -x http://127.0.0.1:8080 http://example.com
요청이 Sessions 보기에 나타납니다.
첫 번째 HTTPS 캡처
curl http://127.0.0.1:8080/admin/ca -o oproxy-ca.crt
curl --cacert oproxy-ca.crt -x http://127.0.0.1:8080 https://example.com
브라우저 HTTPS 캡처의 경우 http://127.0.0.1:8080/admin/ca에서 CA를 브라우저 또는 OS 신뢰 저장소에 설치합니다.
할 수 있는 일
OPROXY_PORT/port(기본값8080)에서 포워드 HTTP 프록시 역할을 합니다.- 동일한 리스너에서 로컬 관리 UI 및 API를 제공합니다.
- MITM이 활성화되고 클라이언트가 생성된 CA를 신뢰할 때 HTTPS CONNECT 트래픽을 가로챕니다.
- 선택적으로
socks5_port에서 SOCKS5 CONNECT 트래픽을 수신합니다. - 선택적으로
https_port로 두 번째 TLS 리스너를 실행합니다. - 세션 및 본문 보존이 제한된 메모리 내에서 실시간 세션을 캡처합니다.
- 관리 엔드포인트로 세션을 명시적으로 저장하고 로드합니다.
- 기본적으로 편집(redacted)된 HAR, cURL, Fetch, Python 스니펫을 내보냅니다.
- HAR 파일 및 oproxy JSON 세션 데이터를 가져옵니다.
- 서버 전송 이벤트로 세션 변경 알림을 스트리밍합니다.
- 일치하는 트래픽이 캡처되면 JWT, GraphQL, gRPC 및 WebSocket 프레임 메타데이터를 검사합니다.
사용 사례
- 애플리케이션 코드를 변경하지 않고 브라우저 또는 CLI 요청을 디버그합니다.
- Compose에서 헤더 또는 본문을 편집한 후 캡처된 요청을 재생합니다.
- 목(mock) 응답 또는 로컬 픽스처 파일을 대상으로 프런트엔드를 테스트합니다.
- 트래픽 일부를 스테이징 서비스로 라우팅합니다.
- 느리거나 대역폭이 제한된 응답을 재현합니다.
- 계속 진행되기 전에 일치하는 요청 또는 응답을 일시 중지합니다.
- 요청이 차단, 리디렉션 또는 재작성될 때 클라이언트가 어떻게 동작하는지 검증합니다.
스크린샷


문서
라이선스
MIT