Tweaking rTorrent for the best speeds and peering.
August 19th, 2019, 05:34

This article will show which lines to edit in order to adjust your rtorrent settings to help maximize download and upload speeds as well as peering. This should help your rTorrent client quickly connect to the pool and download at full speed available. These tweaks are recommended, but please be careful and follow the changed carefully. Incorrectly editing this file could cause your client to become unavailable. You should make a backup of this file before editing!


The .rtorrent.rc file is located in your shared mount at:

/mnt/shared/config/rtorrent38/.rtorrent/.rtorrent.rc


You can access and edit this file with the Cloud Commander App in your dashboard or directly via ssh using Nano. 


Once you have the file open, you will want to edit the highlighted lines from their defaults to what is listed here, be sure to remove the # symbol if there is one at the beginning of the line


WARNING! Do not edit any other lines. Your ports are specific to your client and box, and will not be the same as listed here.


# This is an example resource file for rTorrent. Copy to

# ~/.rtorrent.rc and enable/modify the options as needed. Remember to

# uncomment the options you wish to enable.


scgi_port=127.0.0.1:5000

encoding_list = UTF-8


log.open_file = "rtorrent.log", "/downloads/.log/rtorrent/rtorrent.log"

log.add_output = "info", "rtorrent.log"

log.add_output = "critical", "rtorrent.log"

log.add_output = "error", "rtorrent.log"

#log.add_output = "warn", "rtorrent.log"

#log.add_output = "notice", "rtorrent.log"

#log.add_output = "info", "rtorrent.log"

#log.add_output = "debug", "rtorrent.log"


execute2 = {sh,-c,/usr/bin/php /var/www/rutorrent/php/initplugins.php &}


# Maximum and minimum number of peers to connect to per torrent.

throttle.min_peers.normal.set = 1

throttle.max_peers.normal.set = 400


# Same as above but for seeding completed torrents (-1 = same as downloading)

throttle.min_peers.seed.set = -1

throttle.max_peers.seed.set = -1


# Maximum number of simultanious uploads per torrent.

throttle.max_uploads.set = 50


# Global upload and download rate in KiB. "0" for unlimited.

#

throttle.global_down.max_rate.set_kb = 0

throttle.global_up.max_rate.set_kb = 0


# Default directory to save the downloaded torrents.

directory.default.set = "/mnt/shared/Application Data/rtorrent/downloads"


# Default session directory. Make sure you don't run multiple instance

# of rtorrent using the same session directory. Perhaps using a

# relative path?

session.path.set = /downloads/.rtorrent/session


# Watch a directory for new torrents, and stop those that have been

# deleted.

schedule2 = watch_directory,5,5,load_start=/downloads/.rtorrent/watch/*.torrent

#schedule2 = untied_directory,5,5,stop_untied=


# Close torrents when diskspace is low.

#schedule2 = low_diskspace,5,60,close_low_diskspace=100M


# The ip address reported to the tracker.

#

#network.local_address.set = 127.0.0.1

#network.local_address.set = rakshasa.no


# The ip address the listening socket and outgoing connections is

# bound to.

#

#network.bind_address.set = 127.0.0.1

#network.bind_address.set = rakshasa.no


# Port range to use for listening.

network.port_range.set = 52169-52169


# Start opening ports at a random position within the port range.

network.port_random.set = yes


# Check hash for finished torrents. Might be usefull until the bug is

# fixed that causes lack of diskspace not to be properly reported.

#

pieces.hash.on_completion.set = no


# Set whether the client should try to connect to UDP trackers.

trackers.use_udp.set = yes


# Alternative calls to bind and ip that should handle dynamic ip's.

#

#schedule2 = ip_tick,0,1800,ip=rakshasa

#schedule2 = bind_tick,0,1800,bind=rakshasa


# Encryption options, set to none (default) or any combination of the following:

# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext

#

# The example value allows incoming encrypted connections, starts unencrypted

# outgoing connections but retries with encryption if they fail, preferring

# plaintext to RC4 encryption after the encrypted handshake

#

# protocol.encryption.set = allow_incoming,enable_retry,prefer_plaintext


# Enable DHT support for trackerless torrents or when all trackers are down.

# May be set to "disable" (completely disable DHT), "off" (do not start DHT),

# "auto" (start and stop DHT as needed), or "on" (start DHT immediately).

# The default is "off". For DHT to work, a session directory must be defined.

dht.mode.set = off


# UDP port to use for DHT. 

dht.port.set=35517


# Enable peer exchange (for torrents not marked private)

#

protocol.pex.set = no


# Set downlad list layout style. ("full", "compact")

#

#ui.torrent_list.layout.set = "full"


Once you have edited the .rtorrent.rc file, save it, and then restart your rTorrent client from your Dashboard. Once you have done this, your ruTorrent settings should reflect the following in the web GUI. (your ports will be specific to your box, do not change them)