A Windows desktop SOCKS5 load balancer for using multiple Internet connections with IDM—with optional Steam-only routing.
Speedy Bonding turns usable IPv4 interfaces—Wi‑Fi, broadband/RAS, Ethernet, or mobile links—into one local SOCKS5 entry point. Each new proxy connection is bound to a selected source address, so multi-connection applications can use more than one path.
Important: this is weighted connection load balancing, not packet-level multipath bonding. A single TCP connection stays on the interface where it started. IDM and Steam can benefit when they open several concurrent connections, but the byte split will not always be exactly 50/50.
- Detects usable, non-virtual IPv4 interfaces and re-scans them while the proxy is running.
- Opens a loopback-only SOCKS5 server at
127.0.0.1:8080. - Lets you assign a percentage to each connection; the total must equal 100%.
- Binds outbound TCP and UDP relay sockets to the selected local IPv4 address.
- Includes an optional Steam Mode that routes
steam.exe,steamwebhelper.exe,steamservice.exe, andGameOverlayUI.exethrough the bonded proxy while other traffic remains direct. - Keeps the normal Local Proxy workflow available for IDM and other SOCKS5-aware applications.
The generated hero artwork is intentionally presentation-only. The architecture diagram is the source-of-truth for the actual routing model.
Requirements: Windows 10/11, Node.js 20+, npm, and two or more usable IPv4 Internet paths.
npm ci
npm run prepare-runtime
npm run lint
npm run start- Turn Local Proxy on.
- Leave the connection percentages at 50/50 for an equal starting point, or tune them to match your line speeds.
- In IDM, set SOCKS5 to host
127.0.0.1, port8080. - Start a download with multiple IDM connections.
- Open Steam first.
- Turn Local Proxy on.
- Turn Steam Mode on and approve the Windows administrator prompt.
- Pause/resume a download after enabling the mode so Steam creates fresh connections.
Steam Mode is process-aware, not download-aware: it detects that Steam is running and routes matching Steam processes whenever they generate traffic. The temporary SpeedyGlobal adapter exists only while Steam Mode is active.
IDM / Steam / another SOCKS5 client
|
v
127.0.0.1:8080 SOCKS5
|
weighted connection picker
/ \\
v v
Wi-Fi source IPv4 Broadband/RAS source IPv4
\\ /
v v
Internet paths used by separate connections
Steam Mode adds a Windows TUN layer in front of the same local SOCKS5 server. Its process rule sends Steam traffic to bonded; the final route for non-Steam traffic is direct.
npm run lint
npm run typecheck
npm run packageTo validate routing locally, inspect the Steam Mode log at:
%APPDATA%\Speedy Bonding\global-mode\sing-box.log
outbound/socks[bonded] means a matched Steam connection used the bonded proxy. outbound/direct[direct] means traffic followed the direct fallback.
No. It is a local weighted SOCKS5 proxy that distributes separate outbound connections across eligible IPv4 interfaces. A single TCP connection remains on the interface selected when it starts.
Enable Local Proxy, then set IDM to SOCKS5, host 127.0.0.1, port 8080, with no username or password. IDM downloads with multiple connections can then use multiple selected paths.
Only when the application opens multiple connections. Speedy does not split one TCP flow packet-by-packet, and it cannot guarantee an exact 50/50 byte split or a specific speed increase.
Steam Mode is an optional process-scoped Windows TUN route. It matches Steam-related processes and sends their traffic through the local SOCKS5 load balancer while other traffic stays direct.
- The app does not create a single packet-level bonded tunnel. For that, use a multipath VPN or a server-assisted bonding product.
- Windows must have a real IPv4 address and route for an interface to be usable; an APIPA address such as
169.254.x.xis excluded. - Steam games are not automatically included just because Steam is included. Add and verify game executable names before claiming game traffic is bonded.
- The unauthenticated SOCKS5 listener binds to loopback only. Do not change it to
0.0.0.0without adding authentication and a firewall policy. - Steam Mode requires elevation to create and remove its temporary TUN adapter.
- This project is a public preview. Test with a small download before relying on it for a long transfer.
See CONTRIBUTING.md for the development workflow and SECURITY.md for private vulnerability reports.
Good first contributions include connection-rate telemetry, byte-aware scheduling, stronger Steam-mode health reporting, and focused Windows integration tests.
Speedy Bonding is a maintained fork of the open-source RezaRafia/Speedy project. The original project and its author are credited here; this repository contains MHJoy99's Windows routing, SOCKS5, Steam Mode, packaging, and documentation changes.
MIT. See LICENSE.
