Show HN: Oproxy – 브라우저에서 네트워크 트래픽을 검사·수정

발행: (2026년 6월 7일 AM 11:11 GMT+9)
6 분 소요

Source: Hacker News

oproxy는 트래픽을 검사·재생·수정할 수 있는 로컬 HTTP, HTTPS, SOCKS5 프록시입니다.

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

Features

  • 로컬 oproxy CA를 신뢰한 뒤 HTTP와 HTTPS 트래픽을 캡처합니다.
  • 요청, 응답, 헤더, 본문, 상태, 타이밍, 태그, 메모, 선택된 인스펙터 데이터를 확인합니다.
  • 캡처한 요청을 재생하고 Compose에서 엽니다.
  • 헤더, 쿼리 파라미터, 인증, 원시 본문, 변수, 컬렉션, cURL 내보내기를 포함한 수동 요청을 생성합니다.
  • 캡처를 HAR 형식이나 자동 생성된 cURL, Fetch, Python 스니펫으로 내보냅니다.
  • 규칙 세트, map‑remote, map‑local, 접근 규칙, 스로틀링, 브레이크포인트, 모킹 응답, DNS 오버라이드, 캡처 필터, Lua 스크립트, 상위 프록시 체이닝 등을 사용해 트래픽을 수정합니다.
  • 인증된 Assistant를 이용해 상태를 점검하고 OpenAI 호환 채팅 모델을 통해 확인된 프록시 변경을 준비합니다.
  • 소스 혹은 Docker에서 실행하며 CA 자료와 로컬 상태를 위한 영구 볼륨을 사용합니다.

Demo

짧은 데모 영상

Quick Start

Docker

docker run --rm \
  --name oproxy \
  -p 127.0.0.1:8080:8080 \
  -p 127.0.0.1:1080:1080 \
  -e OPROXY_BIND_HOST=0.0.0.0 \
  -e OPROXY_MITM_ENABLED=true \
  -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을 설정합니다.

Source

필요 사항:

  • 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을 엽니다.

First Request

curl -x http://127.0.0.1:8080 http://example.com

요청이 Sessions 뷰에 표시됩니다.

First HTTPS Capture

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 신뢰 저장소에 설치합니다.

What It Can Do

  • OPROXY_PORT/port(기본 8080)에서 포워드 HTTP 프록시 역할을 합니다.
  • 동일 리스너에서 로컬 관리 UI와 API를 제공합니다.
  • MITM이 활성화되고 클라이언트가 생성된 CA를 신뢰할 경우 HTTPS CONNECT 트래픽을 가로챕니다.
  • 필요에 따라 socks5_port에서 SOCKS5 CONNECT 트래픽을 수신합니다.
  • 필요에 따라 https_port로 두 번째 TLS 리스너를 실행합니다.
  • 메모리 내에서 제한된 세션 및 본문 보존 정책으로 실시간 세션을 캡처합니다.
  • 관리 엔드포인트를 통해 세션을 명시적으로 저장·로드합니다.
  • 기본적으로 민감 정보를 마스킹한 채 HAR, cURL, Fetch, Python 스니펫을 내보냅니다.
  • HAR 파일과 oproxy JSON 세션 데이터를 가져올 수 있습니다.
  • 서버 전송 이벤트(Server‑Sent Events)로 세션 변경 알림을 스트리밍합니다.
  • 캡처된 트래픽이 매칭될 경우 JWT, GraphQL, gRPC, WebSocket 프레임 메타데이터를 검사합니다.

Use Cases

  • 애플리케이션 코드를 수정하지 않고 브라우저나 CLI 요청을 디버깅합니다.
  • 헤더·본문을 Compose에서 편집한 뒤 캡처된 요청을 재생합니다.
  • 프론트엔드가 모킹 응답이나 로컬 픽스처 파일을 사용하도록 테스트합니다.
  • 트래픽의 일부를 스테이징 서비스로 라우팅합니다.
  • 느리거나 대역폭 제한이 있는 응답을 재현합니다.
  • 매칭되는 요청·응답을 일시 중지해 진행을 멈춥니다.
  • 요청이 차단·리다이렉트·재작성될 때 클라이언트가 어떻게 동작하는지 검증합니다.

Screenshots

oproxy sessions screenshot

oproxy compose screenshot

Documentation

License

MIT

0 조회
Back to Blog

관련 글

더 보기 »

피에프에스

Check out https://github.com/philipl/inferencefs/https://github.com/philipl/inferencefs/ for the latest in data-free filesystems! check-out-httpsgithubcomphili...

Anthropic 모델 명명, 추정

Aphorism One sentence, but it always feels right Haiku Small poem, small bill Marginalia Provides unprompted commentary on your code Abstract Summarizes reasoni...

AI 급성장 정책

June 2026 In one of the side plots to The Lord of the Rings, two of the Hobbits attempt to rouse Treebeard—a wise but ponderous sentient tree—to defend his fore...