OnionAccelerator: multi-circuit / chunked download acceleration over Tor
Source Reddit BlueTeam
Discussion
OnionAccelerator is a Python tool designed to accelerate downloads over the Tor network by splitting downloads across multiple Tor circuits or SOCKS5 proxies. It supports multi-file parallel downloads, chunked downloads of single files across multiple circuits, and proxy speed testing. The tool aims to improve throughput limitations inherent in single Tor circuits, primarily for authorized data collection use cases such as archiving dark web content. There are no indications of vulnerabilities or exploits associated with this tool. It is a utility to enhance download performance over Tor rather than a security threat or vulnerability.
r/blueteamsec (opens in a new tab)u/UnbufferedCrime0 points0 comments
Anyone doing dark web collection knows the throughput problem: a single Tor circuit caps out low, and when you need to archive a leak dump, a marketplace mirror, or a few hundred MB off a hidden service before it rotates or disappears, sequential pulls over one circuit are painful.
I built a small Python tool for this, OnionAccelerator, and figured I'd share it here in case it's useful to others doing the same kind of work and because I'd like a second set of eyes on the approach.
What it does: it fans downloads out across multiple SOCKS5 proxies (Tor instances), in three modes:
- multi — pulls a list of URLs in parallel, one worker per circuit
- partial — splits a single file into byte-range chunks, fetches each chunk over a different circuit, then merges.
- speedtest — benchmarks each proxy port so you can drop dead/slow circuits before a run
You can back it with locally Dockerised Tor instances (there's a one-liner in the README that spins up ~20) or an external SOCKS5 list. It also does User-Agent rotation, inline retries, per-host output paths so same-named files don't clobber each other, and per-job logging.
Caveats I'm aware of, and would rather name than hide: it leans on running multiple circuits, so mind the load and your own OPSEC around whatever proxies you route through. It's meant for collection you're authorised to do, not for hammering anything. The code started as a personal utility, so it's rough in places.
PRs, issues, and "you're doing X wrong" all welcome. Mostly curious whether the byte-range-across-circuits approach lines up with how others handle bulk retrieval over Tor, or if people are solving it differently.