- Notifications
You must be signed in to change notification settings - Fork28
A powerful and flexible proxy CLI for capturing and inspecting HTTP(S) and WS(S) traffic, with TUI and WebUI.
License
Apache-2.0, MIT licenses found
Licenses found
sigoden/proxyfor
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A powerful and flexible proxy CLI for capturing and inspecting HTTP(S) and WS(S) traffic.
- Supports forward/reverse proxy
- Provides TUI & WebUI
- Enables filtering & searching
- Handles HTTP/HTTPS/WS/WSS protocols
- Comes with a tool for installing CA certificates
- Allows export in Markdown, cURL, or HAR formats
- Captures request/response in a non-blocking, streaming way
- Offers a single-file portable executable for use across Windows/macOS/Linux
cargo install proxyfor
docker run -v ~/.proxyfor:/.proxyfor -p 8080:8080 --rm sigoden/proxyfor --web
Download fromGithub Releases, unzip and add proxyfor to your $PATH.
In this mode, your client applications (e.g., web browsers, curl) are configured to send their requests toproxyfor
, which then forwards them to the target servers. You would configure your client to use a proxy athttp://127.0.0.1:8080
.
proxyforcurl -x http://127.0.0.1:8080 httpbin.org/ip
In reverse proxy mode,proxyfor
sits in front of a target server. Clients accessproxyfor
and it forwards the requests to the defined URL. This mode is ideal when clients cannot be configured to use a proxy.
proxyfor https://httpbin.orgcurl http://127.0.0.1:8080/ip
Usage: proxyfor [OPTIONS] [URL]Arguments: [URL] Reverse proxy urlOptions: -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 user-friendly web interface -T, --tui Eenter TUI -D, --dump Dump all traffics -h, --help Print help -V, --version Print version
proxyfor
provides several ways to interact with captured traffic:
proxyfor# Enter TUI, equal to `proxyfor --tui`proxyfor --web# Serve WebUIproxyfor --web --tui# Serve WebUI + Enter TUIproxyfor --dump# Dump all traffics to consoleproxyfor> proxyfor.md# Dump all traffics to markdown file
Customize the listening address and port:
proxyfor -l 8081proxyfor -l 127.0.0.1proxyfor -l 127.0.0.1:8081
Apply regex filters to limit captured traffic based on method and URI:
proxyfor -f httpbin.org/ip -f httpbin.org/anythingproxyfor -f'/^(get|post) https:\/\/httpbin.org/'
Filter based on MIME types:
proxyfor -m application/json -m application/ld+jsonproxyfor -m text/
To decrypt HTTPS traffic, you must installproxyfor
's CA certificate on your device. The easiest way to do this is to use the built-in certificate installation app.
- Start
proxyfor
with desired proxy settings. - On your target device, configure the device to use
proxyfor
as the proxy. - Open a web browser on the target device and navigate toproxyfor.local.
- Follow the on-screen instructions to download and install the CA certificate.
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.
About
A powerful and flexible proxy CLI for capturing and inspecting HTTP(S) and WS(S) traffic, with TUI and WebUI.