Top Related Projects
Quick Overview
Multitor is a tool that creates multiple Tor instances with a load-balancing feature. It allows users to route their network traffic through multiple Tor circuits simultaneously, enhancing anonymity and distributing the load across different exit nodes.
Pros
- Improves anonymity by using multiple Tor circuits
- Provides load balancing for better performance
- Offers easy management of multiple Tor instances
- Includes a user-friendly interface for monitoring and control
Cons
- May be complex for novice users to set up and configure
- Requires additional system resources to run multiple Tor instances
- Potential for decreased overall network speed due to Tor's inherent latency
- Limited documentation and community support compared to standard Tor usage
Getting Started
To get started with Multitor, follow these steps:
-
Clone the repository:
git clone https://github.com/trimstray/multitor
-
Navigate to the project directory:
cd multitor
-
Run the setup script:
./setup.sh install
-
Start Multitor with default settings:
multitor --init 2 --user debian-tor --socks-port 9000 --control-port 9900
This will create two Tor instances with SOCKS ports starting at 9000 and control ports starting at 9900. Adjust the parameters as needed for your specific use case.
Competitor Comparisons
unofficial git repo -- report bugs/issues/pull requests on https://gitlab.torproject.org/ --
Pros of Tor
- Official, well-maintained project with a large community and regular updates
- Comprehensive documentation and extensive features for anonymity and privacy
- Supports various platforms and integrates with many applications
Cons of Tor
- Can be complex to set up and configure for advanced use cases
- May have slower connection speeds due to routing through multiple nodes
- Requires more system resources compared to lighter alternatives
Code Comparison
Tor (C language):
int
main(int argc, char *argv[])
{
tor_init(argc, argv);
return run_tor_main_loop();
}
Multitor (Bash script):
while : ; do
_init_function
_tor_load
_tor_initialize
done
Key Differences
- Tor is a full-fledged anonymity network, while Multitor is a script for managing multiple Tor instances
- Tor offers more advanced features and customization options
- Multitor focuses on simplifying the process of running multiple Tor instances for improved anonymity
Use Cases
- Tor: Ideal for users requiring a robust, well-supported anonymity solution
- Multitor: Suitable for users who want to easily manage multiple Tor instances without deep technical knowledge
The obfourscator (Courtesy mirror)
Pros of obfs4
- Designed specifically for Tor network obfuscation
- Implements advanced obfuscation techniques to bypass censorship
- Actively maintained and part of the official Tor Project
Cons of obfs4
- More complex to set up and configure
- Limited to Tor network usage
- Requires coordination with Tor bridge operators
Code Comparison
obfs4:
func (pt *obfs4Transport) ClientHandshake(conn net.Conn) (net.Conn, error) {
// Handshake implementation
}
multitor:
_init_function() {
local _FUNCTION_ID="_init_function"
# Function initialization
}
Key Differences
- multitor is a shell script for managing multiple Tor instances, while obfs4 is a Go implementation of an obfuscation protocol
- multitor focuses on Tor traffic distribution, while obfs4 specializes in obfuscating Tor traffic
- obfs4 is more tightly integrated with the Tor ecosystem, whereas multitor is a standalone tool
Use Cases
- Use multitor for managing multiple Tor instances and load balancing
- Use obfs4 when advanced obfuscation is needed to bypass censorship in restrictive environments
Community and Support
- obfs4 has stronger backing from the Tor Project and its community
- multitor relies on individual contributors and has a smaller user base
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
multitor
Create multiple TOR instances with load-balancing.
Description ⢠Introduction ⢠How To Use ⢠Parameters ⢠Requirements ⢠Docker ⢠Other ⢠License ⢠Wiki
Description
It provides one single endpoint for clients. Supports HAProxy, socks protocol and http-proxy servers: polipo, privoxy and hpts.
In addition, you can view previously running TOR processes and create a new identity for all or selected processes.
The
multitor
has been completely rewritten on the basis of:
- Multi-TOR project written by Jan Seidl: Multi-TOR
- original source is (Sebastian Wain project): Distributed Scraping With Multiple TOR Circuits
Introduction
multitor
was created with the aim of initialize many TOR processes as quickly as possible. I could use many instances for my daily use programs (web browsers, messangers and other). In addition, I was looking for a tool that would increase anonymity when conducting penetration tests and testing the security of infrastructure.
Before using the multitor
you need to remember:
- TOR does attempt to generate a bunch of streams for you already. From this perspective, it is already load balancing (and it's much smarter at it than HAproxy)
- the main goal is masking from where we get by sending requests to multiple streams. It is not so easy to locate where an attacker comes from. If you used http/https servers e.g. proxy servers, you will know what is going on but...
- using multiple TOR instances can increase the probability of using a compromised circuit
multitor
getting some bandwidth improvements just because it's a different way of connecting to TOR network- in
multitor
configuration mostly HAProxy checks the local (syn, syn/ack) socket - not all TOR nodes (also exist nodes). If there is a problem with the socket it tries to send traffic to others available without touching what's next - it does not ensure that the data will arrive - TOR network is a separate organism on which the
multitor
has no effect If one of the nodes is damaged and somehow the data can not leave the exit node, it is likely that a connection error will be returned or, at best, the data will be transferred through another local socket - HAProxy load balance network traffic between local TOR or http-proxy processes - not nodes inside TOR network
TOR is a fine security project and an excellent component in a strategy of defence in depth but it isnât (sadly) a cloak of invisibility. When using the TOR, always remember about ssl (e.g. https) wherever it is possible.
Look also at Limitations.
How To Use
:heavy_exclamation_mark: For a more detailed understanding of
multitor
, its parameters, functions and how it all works, see the Manual.
It's simple:
# Clone this repository
git clone https://github.com/trimstray/multitor
# Go into the repository
cd multitor
# Install
./setup.sh install
# Run the app
multitor --init 2 --user debian-tor --socks-port 9000 --control-port 9900 --proxy privoxy --haproxy
- symlink to
bin/multitor
is placed in/usr/local/bin
- man page is placed in
/usr/local/man/man8
Parameters
Provides the following options:
Usage:
multitor <option|long-option>
Examples:
multitor --init 2 --user debian-tor --socks-port 9000 --control-port 9900
multitor --init 10 --user debian-tor --socks-port 9000 --control-port 9900 --proxy socks
multitor --show-id --socks-port 9000
Options:
--help show this message
--debug displays information on the screen (debug mode)
--verbose displays more information about TOR processes
-i, --init <num> init new tor processes
-k, --kill kill all multitor processes
-s, --show-id show specific tor process id
-n, --new-id regenerate tor circuit
-u, --user <string> set the user (only with -i|--init)
--socks-port <port_num|all> set socks port number
--control-port <port_num> set control port number
--proxy <proxy_type> set socks or http (polipo, privoxy, hpts) proxy server
--haproxy set HAProxy as a frontend for http proxies (only with --proxy)
Requirements
multitor
uses external utilities to be installed before running:
This tool working with:
- GNU/Linux (testing on Debian and CentOS)
- Bash (testing on 4.4.19)
Also you will need root access.
Docker
See this project: docker-multitor
Other
Important
If you use this tool in other scripts where the output is saved everywhere, not on the screen, remember that you will not be able to use the generated password. I will correct this in the next version. If you do not use regenerate function of single or all TOR circuits with a password, you can safely restart the multitor
which will do it for you.
Limitations
- each TOR, http-proxy and HAProxy processes needs a certain number of memory. If the number of TOR processes is too big, the oldest one will be automatically killed by the system
- Polipo is no longer supported but it is still a very good and light proxy. In my opinion the best http-proxy solution is Privoxy
- I think this topic will be usefull for You before using
multitor
- How to run multiple Tor processes at once with different exit IPs?
Contributing
See this.
Project architecture
See this.
License
GPLv3 : http://www.gnu.org/licenses/
Free software, Yeah!
Top Related Projects
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot