Oproxy: Browser-Based Network Traffic Inspection and Modification

Oproxy is a network proxy tool that allows developers to inspect and modify network traffic using a browser-based interface. By acting as an intermediary between the client and the server, Oproxy enables the interception of requests and responses, facilitating debugging, security testing, and traffic shaping.

Core Functionality and Deployment

Oproxy provides a mechanism to capture network traffic and modify it on the fly. It supports Man-in-the-Middle (MITM) capabilities, which are essential for decrypting and inspecting HTTPS traffic.

Deployment is primarily handled via Docker. A typical deployment command involves setting the bind host, enabling MITM, and mounting volumes for certificates and storage:

docker run --rm \
  --name oproxy \
  --ulimit nofile=65535:65535 \
  -p 8080:8080 \
  -p 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

Key Features and Experimental Tools

Traffic Modification and Shaping

Oproxy goes beyond simple inspection by allowing users to shape traffic. While browser-native network inspectors provide visibility into requests, Oproxy's ability to modify traffic in transit provides a level of control not available in standard browser DevTools.

Experimental AI Assistant

Oproxy includes an experimental AI assistant designed to improve the usability of traffic inspection. The developer, sauravrao637, has specifically requested user feedback on the assistant's effectiveness and usability.

Community Feedback and Comparisons

Community discussions on Hacker News highlight several points regarding the tool's positioning and usability:

  • User Interface Discovery: Some users reported difficulty finding the web interface for traffic visualization after starting the Docker container, noting that the initial documentation may not explicitly guide users to the UI access point.
  • Comparison to Native Tools: There is a debate regarding the overlap between Oproxy and built-in browser network inspectors. One user noted:

    "I can understand the motivation for CLI-based clients, but the browser built-in network inspector overlaps a lot."

  • Alternative Tools: The community mentioned several alternatives and similar projects, including mitmproxy and ferret (available at github.com/synlace/ferret). Additionally, Clawchrome was cited as another tool using MITM proxies for browser network capture to support agents without relying on the Chrome DevTools Protocol (CDP).

Technical Constraints

Oproxy requires specific configuration for high-volume traffic, as evidenced by the need to set the ulimit for open files (nofile=65535:65535) during Docker deployment to prevent the proxy from hitting system limits during heavy network activity.

Sources