Tor project says1:
Note: You can only run two Tor relays per public IPv4 address.
If the bandwidth, CPU and memory usage allow, hosting a second Tor relay on the same machine is possible to maximize resource utilization.
Here’s how I hosted a secondary Tor relay on a Debian machine, which was already running a middle (soon to be guard) relay. Debian systems already are capable of running multiple relays via
tor_instance_create package which is already part of Debian/Ubuntu Tor package, the manual page of which can be found here.
Here’s how to setup the node:
sudo /usr/sbin/tor-instance-create <relay-name> sudo vim /etc/tor/instances/<relay-name>/torrc
Comment out +SocksPort auto line. Add the details for the second relay on a different port and nickname.
Next, we need to add both relays fingerprint in their
torrc, so clients don’t make a circuit via both at once. We avoid this by adding the
MyFamily variable. To get the fingerprint of second relay, start the relay, wait for the bootstrapping process by monitoring the
syslog (found in
/var/log/syslog). Do the following to get the fingerprint:
# start the relay sudo systemctl start tor@<relay-name> # wait for fingerprint generation and then sudo systemctl stop tor@<relay-name>
Next, add the following line in both relay’s
MyFamily <relay-1-fingerprint>, <relay-2-fingerprint>
Restart Tor for it to take effect:
sudo systemctl restart tor
It will restart both the relays at once.
syslog for progress. Verify everything is fine by visiting metrics.torproject.org (after three hours) to check if “Effective Family Members” and other settings are as intended.
And that’s how we hammer our server for the benefit of the society ;)
“Tor Project | Relay Requirements” ↩︎