Transmission

The BitTorrent protocol can be used to reduce the server and network impact of distributing large files. Rather than downloading a file from a single source server, the BitTorrent protocol allows users to join a "swarm" of hosts to download and upload from each other simultaneously.

Transmission is designed for easy, powerful use. We've set the defaults to Just Work and it only takes a few clicks to configure advanced features like watch directories, bad peer blocklists, and the web interface. When Ubuntu chose Transmission as its default BitTorrent client, one of the most-cited reasons was its easy learning curve.

This How-to focuses on CLI (Command Line Interface) and the Web interface

Transmission has been configured to work out of the box on a desktop. Because this how-to is designed for Ubuntu server we need to manually allow remote access.

Installation

Transmission is typically installed by default in Ubuntu. If not, install the transmission package from the Universe repository.

Add Transmission PPA Repository

If you want the latest then add the PPA repository

sudo add-apt-repository ppa:transmissionbt/ppa

Update repositories

sudo apt-get update

Install transmission

sudo apt-get install transmission-cli transmission-common transmission-daemon

Configure

There are many settings which can be configured. This how-to focus on tweaking the default configuration file for use with Ubuntu server.

transmission-daemon will start automatically each time you start your server, with the settings defined in /var/lib/transmission-daemon/info/settings.json

Make sure the Transmission daemon is not running when changing the config file otherwise your changes will be over written.

sudo service transmission-daemon stop

edit /var/lib/transmission-daemon/info/settings.json

sudo nano /var/lib/transmission-daemon/info/settings.json

Username and Password

The default rpc-username and password is “transmission”

Change if increased security is required

Change it to whatever you want (any password will work). After next restart the password will be rewritten in SHA1 encrypted format for security reasons.

"rpc-password": "{62b16db87b89a91dd49a5110a7cafc06d20eb4f2wtK6kqPj",
"rpc-username": "transmission",

Whitelist

This must be changed for remote access

rpc-whitelist defines access to transmission. Localhost (127.0.0.1) is defined by default. I added ,192.268.*.* to allow any machine on my LAN access.

"rpc-whitelist": "127.0.0.1,192.168.*.*",

"umask" parameter

You will also have to set the "umask" parameter in Transmission’s settings file to “2” (default is 18) for the account user to have full access to files/folders created by Transmission.

"umask": 2,

Transmission Restart

After configuration change, restart transmission

sudo service transmission-daemon start

Default File Directory

Place a torrent file in this directory for automatic file download

/var/lib/transmission-daemon/downloads/

Configure Users and Permissions

It is recommended that Transmission runs under it’s own username for security reasons. This creates a few issues with file and folder access by Transmission as well as your account (let us assume it is user).

Add the username user to the group debian-transmission:

sudo usermod -a -G debian-transmission user

NOTE: Change "user" to you own Ubuntu user login name.

NOTE: When adding a user to a new group, the user must log out and log back in for it to take affect. A reboot will also accomplish this.

Transmission Daemon

Starting and Stopping Transmission Daemon

After install Transmission, the daemon will be started automatically (but not accessible yet). You can start and stop Transmission daemon using the following commands

sudo service transmission-daemon start
sudo service transmission-daemon stop
sudo service transmission-daemon reload

Note:Restarting (or reloading) Transmission daemon can be tricky. Restarting the the daemon (while it is already running) would rewrite the Transmission settings files to its original state. In other words, restarting the Transmission daemon would reset all the custom settings you saved.

Bash Aliases

Create shortcuts add the following bash aliases to /home/user/.bash_aliases

sudo nano /home/user/.bash_aliases

alias t-start='sudo service transmission-daemon start'
alias t-stop='sudo service transmission-daemon stop'
alias t-reload='sudo service transmission-daemon reload'
alias t-list='transmission-remote -n 'transmission:transmission' -l'
alias t-basicstats='transmission-remote -n 'transmission:transmission' -st'
alias t-fullstats='transmission-remote -n 'transmission:transmission' -si'

source /home/user/.bash_aliases

Example

user@SVR:~$ t-list

will run

transmission-remote -n 'transmission:transmission' -l

Web Interface

With your browser you can now add torrents, download and seed. You can also configure many transmission settings.

http://server-ip:9091

Port Forward

There are many options but one of the more important one's is port forwarding

Check your ports are open

Edit

2015-02-08 10_49_13-.png

Port Forward

TransmissionWebConfig.png

If you port says "closed" you will need to configure your internet router to forward the correct port to your Transmission server/client. Google "How to port forward"

If you don't use "Port Forward" another option is "UPnP". Once again this depends on you internet router setup.

Command Line Interface

With a headless server full control of Transmission requires CLI

Transmission Create

Create a torrent file with transmission CLI. Torrent files can be generated from either a single file or directories. The example below is a directory example

transmission-create -o /var/lib/transmission-daemon/downloads/files.torrent -c "My comments" -t udp://tracker.openbittorrent.com:80 -t udp://open.demonii.com:1337 -t udp://tracker.coppersurfer.tk:6969 -t udp://tracker.leechers-paradise.org:6969 ~/torrent/complete/

-o /var/lib/transmission-daemon/downloads/files.torrent

New torrent name and where to store the torrent

-c "My comments"

Any comments to be attached to the file

-t udp://tracker.openbittorrent.com:80

-t udp://open.demonii.com:1337

-t udp://tracker.coppersurfer.tk:6969

-t udp://tracker.leechers-paradise.org:6969

Trackers for the torrents, more than one tracker is recommended in case one or more goes down.

~/torrent/complete/

Directory to be made into a torrent. If a single file is required use this format "/var/lib/transmission-daemon/downloads/MyFile.txt"

For more information about "transmission-create"

transmission-create -h

Add a Torrent

To add a torrent to the daemon, use this command:

transmission-remote -a [path to file].torrent

transmission-remote -n 'transmission:transmission' -a /var/lib/transmission-daemon/downloads/files.torrent

Torrent Information

Display information about torrent's being downloaded

Help information

transmission-remote -h

List all torrents

Note Authentication is required

transmission-remote -n 'username:password' -l

transmission-remote -n 'transmission:transmission' -l

Basic Stats All Torrents

transmission-remote -n 'transmission:transmission' -st

Full Stats All Torrents

transmission-remote -n 'transmission:transmission' -si

Torrent #3 Full Stats

transmission-remote -n 'transmission:transmission' -t 3 -f

Torrent #3 Summary Stats

transmission-remote -n 'transmission:transmission' -t 3 -i

Transmission Control

Start all torrents

transmission-remote -n 'transmission:transmission' -s

Stop all torrents

transmission-remote -n 'transmission:transmission' -S

Start a specific torrent

transmission-remote -s [hash]

transmission-remote -n 'transmission:transmission' -s -t 3

Stop a specific torrent

transmission-remote -S [hash]

transmission-remote -n 'transmission:transmission' -S -t 3

Remove all torrents

transmission-remote -n 'transmission:transmission' -r

Remove a specific torrent

transmission-remote -r [hash]

transmission-remote -n 'transmission:transmission' -r -t 3

Get hashes for all torrents

transmission-remote -n 'transmission:transmission' -i

Quit the daemon

transmission-remote -n 'transmission:transmission' -q

TransmissionHowTo (last edited 2017-09-10 19:46:07 by ckimes)