ruTorrent not keeping/reading settings for listen port


May 25, 2018
Hey guys,

I was in the rtorrent IRC and they recommended I post here for assistance. I just setup rTorrent + ruTorrent on my server and, for the most part, it looks like things are great with one exception: ruTorrent is not holding/reading settings for the listen port. First, let me post my rtorrent.rc:

# 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.
# Based on original .rtorrent.rc file from
# Modified by Lemonberry for rtGui
# This assumes the following directory structure:
# /Torrents/Downloading - temporaray location for torrents while downloading (see "directory")
# /Torrents/Complete - Torrents are moved here when complete (see "on_finished")
# /Torrents/TorrentFiles/Auto - The 'autoload' directory for rtorrent to use. Place a file
# in here, and rtorrent loads it #automatically. (see "schedule = watch_directory")
# /Torrents/Downloading/rtorrent.session - for storing rtorrent session information

# Maximum and minimum number of peers to connect to per torrent.
#min_peers = 40
max_peers = 100

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

# Maximum number of simultanious uploads per torrent.
max_uploads = 50

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

# Default directory to save the downloaded torrents.
directory = /media/Mimir_Public/Incomplete

# Default session directory. Make sure you don't run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?
session = /home/nick/.session

# Watch a directory for new torrents, and stop those that have been
# deleted.
schedule = watch_directory,5,5,load_start=/media/Mimir_Public/DL
schedule = untied_directory,5,5,stop_untied=

# Close torrents when diskspace is low. */
schedule = low_diskspace,5,60,close_low_diskspace=100M

# Stop torrents when reaching upload ratio in percent,
# when also reaching total upload in bytes, or when
# reaching final upload ratio in percent.
# example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0
#schedule = ratio,60,60,stop_on_ratio=100,200M,2000

# When the torrent finishes, it executes "mv -n <base_path> ~/Download/"
# and then sets the destination directory to "~/Download/". (0.7.7+)
on_finished = move_complete,"execute=mv,-u,$d.get_base_path=,/media/Mimir_Public/Complete/ ;d.set_directory=/media/Mimir_Public/Complete/"

# The ip address reported to the tracker.
#ip =
#ip =

# The ip address the listening socket and outgoing connections is
# bound to.
#bind =
#bind =

# Port range to use for listening.
port_range = 55995-56000

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

scgi_port =

# Check hash for finished torrents. Might be usefull until the bug is
# fixed that causes lack of diskspace not to be properly reported.
#check_hash = no

# Set whetever the client should try to connect to UDP trackers.
#use_udp_trackers = no

# Alternative calls to bind and ip that should handle dynamic ip's.
#schedule = ip_tick,0,1800,ip=rakshasa
#schedule = 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
encryption = 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 = auto

# UDP port to use for DHT.
dht_port = 6881

# Enable peer exchange (for torrents not marked private)
peer_exchange = no

# Do not modify the following parameters unless you know what you're doing.

# Example of scheduling commands: Switch between two ip's every 5
# seconds.
#schedule = "ip_tick1,5,10,ip=torretta"
#schedule = "ip_tick2,10,10,ip=lampedusa"

# Remove a scheduled event.
#schedule_remove = "ip_tick1"

You can see here that I have it using the port range of 55995-56000, which I have forwarded in my router. However, ruTorrent is defaulting to 55995-65535, as seen here:

if I manually change it to 55995-56000 and restart the server the setting reverts back to 55995-65535. If I set it to not randomize the port then set it to 55995 and reboot the server, the same thing happens. I have a feeling this is in a config file somewhere that I am missing, but at this point I am at a loss as to where this could be. TIA for the help!


May 25, 2018
I am beginning to wonder if this is a permissions issue. I will keep looking in to the issue, but I would love to hear what you guys think!

EDIT: So I added my user to the www-data group, but the settings still will not take. :S

For reference, here is the ls -ld output of the settings folder:

drwxrwxrwx 6 www-data www-data 4096 Mar 27 08:59 settings/
It looks like the setting in question is stored in the rtorrent.dat file. Is that file static, or is it newly created each time apache starts?


May 25, 2018
You can close this thread. I deleted rutorrent and rtorrent and went with transmission because I couldn't get rutorrent to work as intended.


May 25, 2018
maybe rutorrent shows wrong settings, did u test it with a random torrent, to see which ports a really used?