
{"id":44240,"date":"2023-08-18T14:11:45","date_gmt":"2023-08-18T14:11:45","guid":{"rendered":"https:\/\/ubuntuhandbook.org\/?p=44240"},"modified":"2024-05-05T15:38:14","modified_gmt":"2024-05-05T15:38:14","slug":"set-up-transmission-daemon-ubuntu-2204","status":"publish","type":"post","link":"https:\/\/ubuntuhandbook.org\/index.php\/2023\/08\/set-up-transmission-daemon-ubuntu-2204\/","title":{"rendered":"Set up Transmission Daemon to turn Ubuntu 24.04\/22.04 as Remote Download Server"},"content":{"rendered":"<p><a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/02\/transmission-icon.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-thumbnail wp-image-43680\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/02\/transmission-icon-250x250.webp\" alt=\"\" width=\"250\" height=\"250\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/02\/transmission-icon-250x250.webp 250w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/02\/transmission-icon-300x300.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/02\/transmission-icon-600x600.webp 600w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/02\/transmission-icon-768x768.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/02\/transmission-icon.webp 1200w\" sizes=\"auto, (max-width: 250px) 100vw, 250px\" \/><\/a><\/p>\n<p>Got a Ubuntu PC or Server and want to use it as remote download server? This is the step by step guide shows you how to do the job using Transmission Daemon.<\/p>\n<p>Ubuntu&#8217;s default Transmission torrent client has a daemon package, that can run silently as a background service, allowing you\u00a0to manage downloads anywhere around the world with internet connection and a web browser.<\/p>\n<p>To use the service, you just need to install the package, enable the service, do some changes on the config file, and grant user permission. And here&#8217;s how to do it step by step.<\/p>\n<h3>Step 1: Install Transmission Daemon &amp; Enable the service<\/h3>\n<p>Firstly, press <b>Ctrl+Alt+T<\/b> on your Ubuntu PC to open terminal. Or connect to your remote Ubuntu server via SSH.<\/p>\n<p><b>1. To install the Daemon package<\/b>, run command:<\/p>\n<pre>sudo apt install transmission-daemon<\/pre>\n<p><i>In Ubuntu Desktop, you might have dependency issue if you&#8217;ve tried 3rd-party Transmission package. In the case, try <code>sudo apt remove transmission*<\/code> to remove the torrent packages first, then re-run the command above.<\/i><\/p>\n<p><b>2. Run the daemon service<\/b>. The daemon should run automatically after installation. Just in case, you may run it manually by running the 2 commands below one by one:<\/p>\n<pre>systemctl enable transmission-daemon<\/pre>\n<pre>systemctl start transmission-daemon<\/pre>\n<p>For Ubuntu server, you may need to add <code>sudo<\/code> in the beginning for each command.<\/p>\n<p><a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/install-transmission-daemon.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-44241\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/install-transmission-daemon-600x288.webp\" alt=\"\" width=\"600\" height=\"288\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/install-transmission-daemon-600x288.webp 600w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/install-transmission-daemon-300x144.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/install-transmission-daemon-768x368.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/install-transmission-daemon.webp 813w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<h3>Step 2: Set up Downloads folder &amp; Grant Permission<\/h3>\n<p>You can skip this step, if you&#8217;d like to use default location to save downloads. It&#8217;s &#8220;<i>\/var\/lib\/transmission-daemon\/downloads\/<\/i>&#8220;, which however is NOT a good choice.<\/p>\n<p><b>1. To create a folder for saving download files<\/b>, for example &#8216;<i>transmission<\/i>&#8216; sub-folder under Downloads,run command:<\/p>\n<pre>mkdir -p ~\/Downloads\/transmission<\/pre>\n<p><i>For Ubuntu Desktop, you can just open &#8216;Files&#8217; (Nautilus file browser) to create a folder anywhere that you want! <\/i><\/p>\n<p><i>For Ubuntu Server, you may even don&#8217;t have &#8220;Downloads&#8221; folder, so change the command accordingly! If you want, just run <code>mkdir -p ~\/transmission<\/code> to create the folder under your user home directory.<\/i><\/p>\n<p><b>2. Add read and write permission<\/b> to that folder, for anyone in your user group.<\/p>\n<pre>chmod g+rw ~\/Downloads\/transmission<\/pre>\n<p><i>In the command, replace <code>~\/Downloads\/transmission<\/code> if you selected another location for saving downloads.<\/i><br \/>\n<i>In Ubuntu 22.04 Desktop edition, you can skip this command since group by default have read &amp; write to user created folders.<\/i><\/p>\n<p><b>3. Finally, add &#8216;debian-transmission&#8217; to your user group<\/b>. So, Transmission daemon has read &amp; write permission to the folder you just created.<\/p>\n<pre>sudo gpasswd --add debian-transmission $USER<\/pre>\n<p><i>NOTE: This change seems needing <b>system restart<\/b> to take effect in Ubuntu Desktop, but not sure if required in Server.<\/i><\/p>\n<p><a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/transmission-permission.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-44242\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/transmission-permission-600x221.webp\" alt=\"\" width=\"600\" height=\"221\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/transmission-permission-600x221.webp 600w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/transmission-permission-300x110.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/transmission-permission-768x282.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/transmission-permission.webp 786w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<h3>Step 3: Edit the Daemon config file<\/h3>\n<p>The daemon by default has only one config file. It&#8217;s <code>\/etc\/transmission-daemon\/settings.json<\/code>.<\/p>\n<p><b>1. To edit the file<\/b>, run command:<\/p>\n<pre>sudo gedit \/etc\/transmission-daemon\/settings.json<\/pre>\n<p><i>Here you may replace <b>gedit<\/b> with <b>gnome-text-editor<\/b> for Ubuntu 24.04, or use <b>nano<\/b> for Ubuntu Server and other Desktop Environment that you don&#8217;t know which text editor to use.<\/i><\/p>\n<p><a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/edit-transmission-daemon.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-44243\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/edit-transmission-daemon-600x162.webp\" alt=\"\" width=\"600\" height=\"162\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/edit-transmission-daemon-600x162.webp 600w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/edit-transmission-daemon-300x81.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/edit-transmission-daemon-768x207.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/edit-transmission-daemon.webp 813w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<p><b>2. When file opens, edit it with following changes<\/b>:<\/p>\n<p>The file includes many configure lines, that I only write some important ones here. You can leave all others default, or edit it according to you need.<\/p>\n<ul>\n<li>First, change the value of <code>\"download-dir\"<\/code> and <code>\"incomplete-dir\"<\/code> to the folder you created in Step 2.In my case, it&#8217;s <b>\/home\/ji\/Downloads\/transmission<\/b>. (replace &#8216;ji&#8217; to your username!) Also, set &#8220;incomplete-dir-enabled&#8221; to true, or unfinished download files are not visible.<a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/download-dir.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-44244\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/download-dir.webp\" alt=\"\" width=\"559\" height=\"303\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/download-dir.webp 559w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/download-dir-300x163.webp 300w\" sizes=\"auto, (max-width: 559px) 100vw, 559px\" \/><\/a><\/li>\n<li>Then, change the values of <b>&#8220;rpc-username&#8221;<\/b> and <b>&#8220;rpc-password&#8221;<\/b> to your desired username &amp; password for remote authentication. Set <b>&#8220;rpc-whitelist-enabled&#8221;<\/b> to false, so anyone with the username &amp; password can access. Or, set it to true, and add you client IP address to &#8220;rpc-whitelist&#8221;.<a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/userpasswd.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-44245\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/userpasswd.webp\" alt=\"\" width=\"572\" height=\"216\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/userpasswd.webp 572w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/userpasswd-300x113.webp 300w\" sizes=\"auto, (max-width: 572px) 100vw, 572px\" \/><\/a><\/li>\n<li>Finally, change value of <b>&#8220;umask&#8221;<\/b> to 18.<br \/>\nValue 022 means 0 (read, write, execute for &#8216;debian-transmission&#8217;, the owner), 2 (read for group &amp; others). It&#8217;s OK but <code>.json<\/code> file does not allow octal notation. So, use 18 instead (octal 22 = decimal 18).<a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/umask.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-44246\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/umask.webp\" alt=\"\" width=\"465\" height=\"132\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/umask.webp 465w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/umask-300x85.webp 300w\" sizes=\"auto, (max-width: 465px) 100vw, 465px\" \/><\/a><\/li>\n<\/ul>\n<p><b>3. Finally, save file.<\/b> For nano text editor, press <b>Ctrl+X<\/b>, type <b>y<\/b> and hit Enter to save changes.<\/p>\n<h3>Step 4: Reload daemon to apply changes<\/h3>\n<p>After editing the config file, you need to reload the daemon to apply the changes.<\/p>\n<p><b>To reload the daemon<\/b>, run command:<\/p>\n<pre>systemctl reload transmission-daemon.service<\/pre>\n<p><i>It must be <b>reload<\/b>! Because <b>restart<\/b> or <b>start<\/b> the service somehow will reset the password to default.<\/i><\/p>\n<p>You may also run command to check the service status by running command:<\/p>\n<pre>systemctl status transmission-daemon.service<\/pre>\n<p><a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/reload-transmission-services.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-44247\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/reload-transmission-services-600x393.webp\" alt=\"\" width=\"600\" height=\"393\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/reload-transmission-services-600x393.webp 600w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/reload-transmission-services-300x197.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/reload-transmission-services-768x503.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/reload-transmission-services.webp 813w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<h3>Step 5: Set up Firewall<\/h3>\n<p>Ubuntu Desktop does not active firewall by default, but Servers are mostly have firewall activated.<\/p>\n<p><b>To check firewall status<\/b>, run command:<\/p>\n<pre>sudo ufw status<\/pre>\n<p>If firewall is activated, run command to allow port 9091:<\/p>\n<pre>sudo ufw allow 9091,51413\/tcp<\/pre>\n<h3>Step 6: Access Transmission Remotely<\/h3>\n<p>Finally, you can access the transmission service on remote Ubuntu Desktop or Server, in anywhere with a web browser. By visiting <b>ip-address:9091\/transmission\/web\/<\/b>.<\/p>\n<p>Or, use any client app with Transmission RPC support!<\/p>\n<p><a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/transmission-webui.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-44248\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/transmission-webui-600x323.webp\" alt=\"\" width=\"600\" height=\"323\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/transmission-webui-600x323.webp 600w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/transmission-webui-300x161.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/transmission-webui-768x413.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/08\/transmission-webui.webp 1290w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Got a Ubuntu PC or Server and want to use it as remote download server? This is the step by step guide shows you how to do the job using Transmission Daemon. Ubuntu&#8217;s default Transmission torrent client has a daemon package, that can run silently as a background service, allowing you\u00a0to manage downloads anywhere around [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":43680,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[1081],"class_list":["post-44240","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-howtos","tag-transmission"],"_links":{"self":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts\/44240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/comments?post=44240"}],"version-history":[{"count":0,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts\/44240\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/media\/43680"}],"wp:attachment":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/media?parent=44240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/categories?post=44240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/tags?post=44240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}