업데이트로 돌아가기
New releaseJul 31, 2026

oproxy v0.1.10

네트워크 트래픽을 가로채고, 검사하고, 모의 처리하는 오픈소스 MITM 프록시

공유

oproxy

oproxy는 트래픽을 검사, 재생 및 수정하기 위한 로컬 HTTP, HTTPS, SOCKS5 프록시입니다.

자체 머신이나 로컬 Docker 컨테이너에서 브라우저, CLI, 모바일 앱, API 클라이언트, 서비스 및 테스트 스위트를 테스트하는 개발자를 위한 도구입니다.

sauravrao637%2Foproxy | Trendshift

기능

  • 로컬 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) 응답 또는 로컬 픽스처 파일을 대상으로 프런트엔드를 테스트합니다.
  • 트래픽 일부를 스테이징 서비스로 라우팅합니다.
  • 느리거나 대역폭이 제한된 응답을 재현합니다.
  • 계속 진행되기 전에 일치하는 요청 또는 응답을 일시 중지합니다.
  • 요청이 차단, 리디렉션 또는 재작성될 때 클라이언트가 어떻게 동작하는지 검증합니다.

스크린샷

oproxy 세션 스크린샷

oproxy Compose 스크린샷

문서

라이선스

MIT

카테고리