A lightweight proxy for capturing HTTP(S) and WS(S) traffic.
- Support forward proxy
- Support reverse proxy
- Support filtering
- Support HTTP/HTTPS/WS/WSS protocols
- Integrate web interface
- Integrate certificates installation webapp
- Export in Markdown, cURL, or HAR formats
cargo install proxyfor
docker run -v ~/.proxyfor:/.proxyfor -p 8080:8080 --rm sigoden/proxyfor --web
Download from Github Releases, unzip and add proxyfor to your $PATH.
The client sets the proxy to http://127.0.0.1:8080
.
$ proxyfor
$ curl -x http://127.0.0.1:8080 httpbin.org/ip
The client directly requests http://127.0.0.1:8080
.
This mode is suitable for scenarios where client cannot set a proxy.
$ proxyfor https://httpbin.org
$ curl http://127.0.0.1:8080/ip
Proxyfor provides a web-based user interface that allows you to interactively inspect the HTTP traffic. All traffic is kept in memory, which means that it’s intended for small-ish samples.
$ proxyfor --web
Usage: proxyfor [OPTIONS] [URL]
Arguments:
[URL] Reverse proxy url
Options:
-l, --listen <ADDR> Listening ip and port address [default: 0.0.0.0:8080]
-f, --filters <REGEX> Only inspect http(s) traffic whose `{method} {uri}` matches the regex
-m, --mime-filters <VALUE> Only inspect http(s) traffic whose content-type matches the value
-w, --web Enable web interface
-h, --help Print help
-V, --version Print version
Change the ip and port.
proxyfor -l 18080
proxyfor -l 127.0.0.1
proxyfor -l 127.0.0.1:18080
Enable web interface with -w/--web
proxyfor --web
Use -f/--filters
to filter traffic by matching {method} {uri}
.
proxyfor -f httpbin.org/ip -f httpbin.org/anything
proxyfor -f '/^(get|post) https:\/\/summer-heart-0930.chufeiyun1688.workers.dev:443\/https\/httpbin.org/'
Use -m/--mime-filters
to filter traffic by content-type.
proxyfor -m application/json -m application/ld+json
proxyfor -m text/
Pipe it to a markdown file, then view the captured traffic using your favorite editor/IDE with syntax highlighting, folding, search capabilities.
proxyfor > proxyfor.md
Proxyfor can decrypt encrypted traffic on the fly, as long as the client trusts proxyfor’s built-in certificate authority. Usually this means that the proxyfor CA certificate has to be installed on the client device.
By far the easiest way to install the proxyfor CA certificate is to use the built-in certificate installation app. To do this, start proxyfor and configure your target device with the correct proxy settings. Now start a browser on the device, and visit the magic domain proxyfor.local.
Copyright (c) 2024-∞ proxyfor-developers.
Proxyfor is made available under the terms of either the MIT License or the Apache License 2.0, at your option.
See the LICENSE-APACHE and LICENSE-MIT files for license details.