rtorrent
rTorrent is a high-performance, ncurses-based BitTorrent client designed for Unix-like systems. It is widely used on servers and headless environments due to its low resource footprint, scriptability, and extensive configuration capabilities via rtorrent.rc. This page documents installation on Gentoo, essential keybindings, and a production-ready personal configuration optimized for fixed ports, private trackers, controlled peer limits, disk monitoring, logging, and automated torrent loading.
Install rtorrent
emerge --ask rtorrent
Keybindings
ctrl+d = stop torrent
ctrl+s = resume torrent
<enter> = add rtorrent manually
ctrl+o = select download path
This is my personal rtorrent.rc configuration
### Paths
directory.default.set = /mnt/usb/glftpd/site/incoming
session.path.set = /home/wuseman/.session
### Startup safety: ensure directories exist (fail hard if not)
execute.throw = sh, -c, "mkdir -p /mnt/usb/glftpd/site/incoming /mnt/usb/logs/rtorrent /home/wuseman/.session /home/wuseman/downloads"
### Logging (keep it simple; rotate externally if you want)
log.open_file = "log", "/mnt/usb/logs/rtorrent/rtorrent.log"
log.add_output = "info", "log"
log.execute = "/mnt/usb/logs/rtorrent/execute.log"
### Network hardening / privacy
network.prefer.ipv6.set = false
# Fixed incoming port (required for forwarding)
network.port_range.set = 50000-50000
network.port_random.set = no
# Disable peer discovery mechanisms that leak info / increase exposure
dht.mode.set = disable
protocol.pex.set = no
# Disable UDP trackers (optional; reduces UDP exposure)
trackers.use_udp.set = no
# Encryption (strongest rtorrent offers)
# If your build supports it, this forces encrypted connections only.
protocol.encryption.set = require,require_rc4,enable_retry
### Basic limits (safe defaults; keep small)
network.max_open_files.set = 256
network.max_open_sockets.set = 128
### Watch dir (optional; comment out if you want zero automation)
schedule2 = watch_start, 10, 10, ((load.start_verbose, "/home/wuseman/downloads/*.torrent"))
### Security-friendly umask
system.umask.set = 0027
Resource(s)