
oproxy v0.1.11
네트워크 트래픽을 가로채고, 검사하고, 모의 처리하는 오픈소스 MITM 프록시
oproxy
oproxy는 브라우저, CLI, 모바일 앱, API 클라이언트, 서비스, 테스트 스위트의 트래픽을 검사, 재생, 수정하기 위한 로컬 HTTP, HTTPS, HTTP/3, WebSocket, SOCKS5 프록시입니다.
동일한 로컬 리스너에서 웹 UI, API, 선택적 AI 어시스턴트를 실행하므로 애플리케이션 코드를 변경하지 않고도 트래픽을 캡처하고, 요청과 응답을 검사하고, 요청을 재생하고, 업스트림을 모킹하고, 트래픽을 재작성하고, 응답을 스로틀링하고, 재현 가능한 스니펫을 내보낼 수 있습니다.
어시스턴트는 OpenAI 호환 컨트롤 플레인 클라이언트로, 허용 목록에 등록된 도구를 통해 현재 프록시 상태를 검사하고 트래픽/구성 변경을 검토 가능한 확인 카드로 준비할 수 있습니다.
보안 참고: HTTPS 가로채기를 위해서는 로컬 oproxy 루트 CA를 신뢰해야 합니다. 이 CA는 본인이 제어하는 머신과 브라우저에만 설치하고, 생성된 개인 키를 안전하게 보관하며, 강력한 토큰 없이 관리자 UI를 노출하지 마십시오.
주요 기능
- HTTPS에 대한 MITM 지원과 함께 HTTP 및 HTTPS 트래픽을 캡처합니다.
- 헤더, 본문, 상태, 타이밍, 태그, 노트, JWT, GraphQL, gRPC 메타데이터, WebSocket 프레임을 검사합니다.
- 캡처된 요청을 재생하거나 Compose에서 편집합니다.
- 캡처를 HAR, cURL, Fetch, Python 스니펫으로 내보냅니다.
- 규칙, 목, map-local/map-remote, 접근 규칙, 스로틀링, 중단점, DNS 재정의, Lua 스크립트, 업스트림 프록시 체이닝으로 트래픽을 수정합니다.
- 어시스턴트를 사용하여 세션을 검사하고, 프록시 상태를 파악하고, OpenAI 호환 채팅 모델을 통해 확인된 변경 사항을 준비합니다.
- Docker, Docker Compose 또는 소스에서 실행합니다.
빠른 시작
Docker
docker run --rm \
--name oproxy \
-p 127.0.0.1:8080:8080 \
-p 127.0.0.1:1080:1080 \
-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 브리지 네트워킹에는 OPROXY_BIND_HOST=0.0.0.0이 필요합니다. 위 명령은 여전히 호스트 루프백에서만 포트를 게시합니다. 실제 사용 전에 OPROXY_ADMIN_TOKEN을 변경하십시오.
Docker Compose
docker compose up --build
체크인된 Compose 파일은 MITM, UDP 8443의 HTTP/3, 영구 인증서/상태, 헬스체크를 활성화합니다.
소스
요구 사항: 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 캡처의 경우, 브라우저 또는 OS가 127.0.0.1:8080을 HTTP 및 HTTPS 프록시로 사용하도록 구성한 다음 http://127.0.0.1:8080/admin/ca에서 CA를 가져옵니다.
데모


더 알아보기
라이선스
oproxy는 MIT License에 따라 라이선스가 부여됩니다.