Files
FireflyGo_Proxy/README.md
T

99 lines
2.5 KiB
Markdown

# Firefly Go Proxy
A lightweight HTTP/HTTPS proxy server with domain redirection and request blocking capabilities. This tool is designed to help with local development and testing by intercepting and modifying HTTP/HTTPS traffic.
## Features
- HTTP/HTTPS proxy with MITM support
- Domain-based request redirection
- URL pattern blocking
- Automatic certificate management
- Cross-platform support (Windows, macOS, Linux)
- System proxy configuration
- Automatic admin prompt on macOS/Linux for certificate/proxy setup
## Installation
### Prerequisites
- Go 1.22 or higher
- Git
### Building from source
```bash
cd firefly-go-proxy
go build
```
## Usage
### Basic usage
```bash
./firefly-proxy [flags] //linux|macos
./firefly-proxy.exe [flags] //windows
```
### Available Flags
- `-r`: Redirect target host (default: "127.0.0.1:21000")
- `-b`: Comma-separated list of blocked ports
- `-p`: Proxy listen port (default: auto)
- `-e`: Path to an executable to run with admin privileges
- `-no-sys`: Run only the proxy server; skip certificate installation, system proxy setup, and macOS/Linux admin relaunch
### Examples
1. Start proxy with default settings:
```bash
./firefly-proxy //linux|macos
./firefly-proxy.exe //windows
```
2. Redirect traffic to a different host:
```bash
./firefly-proxy -r 192.168.1.100:8080 //linux|macos
./firefly-proxy.exe -r 192.168.1.100:8080 //windows
```
3. Block specific ports:
```bash
./firefly-proxy -b "80,443,8080" //linux|macos
./firefly-proxy.exe -b "80,443,8080" //windows
```
4. Run an executable with admin privileges:
```bash
./firefly-proxy -e "/path/to/your/executable" //linux|macos
./firefly-proxy.exe -e "/path/to/your/executable" //windows
```
5. Start proxy on a specific port:
```bash
./firefly-proxy -p 8888 //linux|macos
./firefly-proxy.exe -p 8888 //windows
```
On macOS/Linux, if the proxy is not already running as root, it relaunches with an administrator prompt. On Linux, logs from the elevated process are written to `/tmp/firefly-go-proxy.log`; on macOS, elevated process output is discarded.
6. Start only the proxy server without changing system settings:
```bash
./firefly-proxy -no-sys -p 8888 //linux|macos
./firefly-proxy.exe -no-sys -p 8888 //windows
```
## How it works
The proxy intercepts HTTP/HTTPS traffic and can:
- Redirect requests based on domain names
- Block specific URLs or patterns
- Handle SSL/TLS connections with custom CA certificates
- Automatically configure system proxy settings
## License
MIT License