A high-performance, unified SOCKS5 proxy application written in Go and Fyne (for the GUI). This tool is designed to solve a common connectivity problem: aggregating bandwidth from multiple independent network interfaces, particularly mobile tethering connections, to achieve higher overall throughput.
Ideal for users lacking high-speed fiber or ADSL connections who need to combine the speed of several 4G/5G phones for large downloads.
Largely inspired and copied from the original repository https://github.com/extremecoders-re/go-dispatch-proxy
Thanks to extremecoders-re for the clear example and foundation of the code.
Gui preview:
- Unified Application: The proxy backend and the graphical user interface (GUI) are compiled into a single, standalone executable. No Python, no dependencies, just Go performance.
- Weighted Load Balancing (SOCKS5): Distributes incoming TCP connections across multiple local IP addresses (your connected phones) using a customizable Weighted Round Robin algorithm.
- Real-time Statistics: Visual feedback on the bandwidth usage of each connected interface, including mini-graphs, to monitor performance and identify bottlenecks.
- Network Filtering: Automatically filters out virtual interfaces (like VirtualBox, VMware, Loopback, etc.) to keep the selection list clean and focused on actual internet sources.
- High Performance: Built entirely in Go for low CPU usage, minimal memory footprint, and high concurrency, crucial for managing hundreds of parallel connections from modern download managers.
- Cross-Platform: Tested and built for Windows, macOS, and Linux (requires OS-specific network stack support for binding).
The proxy works on the principle of Connection Load Balancing, not true MPTCP bonding (which requires remote server support).
- Preparation: Connect multiple mobile devices (via USB tethering or Wi-Fi hotspot) to your computer. Each device provides a unique IP address (e.g.,
192.168.42.10,172.20.10.2, etc.). - Proxy Activation: The Go Dispatch Proxy runs on your PC (e.g.,
127.0.0.1:8080). - Download Manager: You must use a multi-threaded download manager (like JDownloader 2, IDM, or aria2) and configure it to use the proxy.
- Aggregation: When the Download Manager splits a large file into 30 chunks, the proxy distributes these 30 individual connections across your 3-4 available mobile connections, effectively summing their bandwidths.
Download the latest executable from the Releases page. No installation is required.
- Connect your mobile phones and ensure they are visible as network interfaces (NICs) on your PC.
- Start the
Go Dispatch Proxyexecutable. - Click "Refresh Interfaces" to load the list of available connections.
- Select the interfaces you wish to use by checking the boxes.
- Set Weight (Optional): Use the slider next to each interface to set its weight (default is 1). An interface with weight 2 will receive twice as many connections as an interface with weight 1. Use this to prioritize faster connections.
- Click "Start Proxy".
Set your download manager or web browser to use the SOCKS5 proxy running on:
- Host:
127.0.0.1 - Port:
8080(or the port you configured in the app) - Protocol: SOCKS5 (Crucial: not HTTP/HTTPS)
Ensure your download manager is configured to use the maximum number of parallel connections (e.g., 16-32) per file to achieve full aggregation.
This project uses Go with the Fyne toolkit for the GUI.
# Clone the repository
git clone [YOUR_REPO_URL]
cd [REPO_NAME]
# Fetch Fyne dependencies
go mod tidy
# Build the unified executable for your system
# The output file will be in the 'dist' folder.
go install fyne.io/fyne/v2/cmd/fyne@latest
fyne package -os windows/amd64 -icon icon.png -name "Go Dispatch Proxy"
# or simply:
go build -ldflags="-s -w" -o dist/dispatch-proxy.exe .