How to Install uTorrent in Ubuntu 18.04 and Ubuntu 19.04

This tutorial will be showing you how to install uTorrent in Ubuntu 18.04 and Ubuntu 19.04. It also includes instructions for auto start uTorrent server on Ubuntu and how to set up a reverse proxy using Nginx/Apache web server, for those who want to access uTorrent via a domain name.

The Linux native uTorrent client is a web-based application, which means you are going to use uTorrent in a web browser. This application is officially called uTorrent server, which features:

  • Distributed hash table (DHT)
  • UPnP port mapping
  • NAT-PMP port mapping
  • Upload rate limiting
  • Download rate limiting
  • Queuing
  • Configurable limit on number of simultaneously uploading peers
  • Incremental file allocation
  • Block level piece picking
  • Separate threads for file-check and download
  • Single thread and single port for multiple torrent downloads
  • BitTorrent extension protocol
  • Multi-tracker extension support
  • Fair trade extension
  • Compact tracker extension
  • Fast resume
  • Queuing of torrent file-check if fast resume not possible
  • HTTP seed support
  • Resumption of partial downloads from other BitTorrent clients
  • File-sizes greater than 2GB
  • Selective download of multi-file torrents
  • IPv6
  • High performance network stack
  • uTP – Advanced UDP-based transport with dynamic congestion control

How to Install uTorrent in Ubuntu 18.04 and Ubuntu 19.04

The latest version of uTorrent for Linux was released for Ubuntu 13.04, but we can still run it in Ubuntu 18.04 LTS and Ubuntu 19.04. Go to uTorrent Linux download page to download the uTorrent server package for Ubuntu 13.04.

utorrent-ubuntu-18.04-client

Alternatively, you can open up a terminal window and run the following command to download it from the command line.

64 bits

wget http://download.ap.bittorrent.com/track/beta/endpoint/utserver/os/linux-x64-ubuntu-13-04 -O utserver.tar.gz

32 bits

wget http://download.ap.bittorrent.com/track/beta/endpoint/utserver/os/linux-i386-ubuntu-13-04 -O utserver.tar.gz

Once downloaded, change working directory to the directory where uTorrent server file is downloaded. Then run the following command to extract the tar.gz file to /opt/ directory.

sudo tar xvf utserver.tar.gz -C /opt/

Next, install required dependencies by executing the following command.

sudo apt install libssl1.0.0 libssl-dev

Note that if you are using Ubuntu 19.04, you need to download the libssl1.0.0 deb package from Ubuntu 18.04 repository and install it, because libssl1.0.0 isn’t included in Ubuntu 19.04 software repository.

wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5.3_amd64.deb

sudo apt install ./libssl1.0.0_1.0.2n-1ubuntu5.3_amd64.deb

After the dependencies are installed, create a symbolic link.

sudo ln -s /opt/utorrent-server-alpha-v3_3/utserver /usr/bin/utserver

Use the following command to start uTorrent server. By default, uTorrent server listens on 0.0.0.0:8080. If there’s another service also listens on port 8080, you should temporarily stop that service. uTorrent will also use port 10000 and 6881. The -daemon option will make uTorrent server run in the background.

utserver -settingspath /opt/utorrent-server-alpha-v3_3/ -daemon

You can now visit the uTorrent web UI in your browser by typing in the following text in the web browser address bar.

your-server-ip:8080/gui

If you are installing uTorrent on your local computer, then replace your-server-ip with localhost.

localhost:8080/gui

If there’s a firewall on your Ubuntu server, then you need to allow access to port 8080 and 6881. For example, if you are using UFW, then run the following two commands to open port 8080 and 6881.

sudo ufw allow 8080/tcp
sudo ufw allow 6881/tcp

Please note that /gui is needed in the URL, otherwise you will encounter invalid request error. When asked for username and password, enter admin in username field and leave password filed empty.

uTorrent-ubuntu-18.04

Once you are logged in, you should change the admin password by clicking the gear icon, then selecting Web UI on the left menu. You can change both the username and password, which is more secure than using admin as the username.

utorrent-ubuntu-19.04

If you have other service listening on port 8080, then in the Connectivity section, you can change the uTorrent listening port to other port like 8081.  After changing the port, you must restart uTorrent server with the following commands.

sudo pkill utserver

utserver -settingspath /opt/utorrent-server-alpha-v3_3/ &

You can set default download directory in the Directories tab.

utorrent-server-ubuntu-18.04

Auto Start uTorrent Server on Ubuntu

To enable auto start, we can create a systemd service with the following command. (Nano is a command line text editor.)

sudo nano /etc/systemd/system/utserver.service

Put the following text into the file. Note that since we are going to use systemd to start uTorrent, we don’t need the -daemon option in the start command.

[Unit]
Description=uTorrent Server
After=network.target

[Service]
Type=simple
User=utorrent
Group=utorrent
ExecStart=/usr/bin/utserver -settingspath /opt/utorrent-server-alpha-v3_3/
ExecStop=/usr/bin/pkill utserver
Restart=always
SyslogIdentifier=uTorrent Server

[Install]
WantedBy=multi-user.target

Press Ctrl+O, then press Enter to save the file. Press Ctrl+X to exit. Then reload systemd.

sudo systemctl daemon-reload

It’s not recommended to run uTorrent server as root, so we’ve specified in the service file that uTorrent server should run as the utorrent user and group, which have no root privileges. Create the utorrent system user and group with the following command.

sudo adduser --system utorrent

sudo addgroup --system utorrent

Add the utorrent user to the utorrent group.

sudo adduser utorrent utorrent

Next, Stop the current uTorrent server.

sudo pkill utserver

Use the systemd service to start uTorrent server.

sudo systemctl start utserver

Enable auto start at boot time.

sudo systemctl enable utserver

Now check utserver status.

systemctl status utserver

auto-start-utorrent-server-ubuntu-18.04

We can see that auto start is enabled and uTorrent server is running. When creating the utorrent user, a home directory was also created at /home/utorrent/. It’s recommended that you set this home directory as your torrent download directory because the utorrent user has write permission. We also need to make utorrent as the owner of the /opt/utorrent-server-alpha-v3_3/ directory by executing the following command.

sudo chown utorrent:utorrent /opt/utorrent-server-alpha-v3_3/ -R

Note: The remaining content is for people who has basic knowledge about web server and DNS records. If you don’t know what Apache/Nginx or DNS A record is, you don’t have to follow the instructions below.

Setting up Nginx Reverse Proxy

To access your uTorrent server from a remote connection using a domain name, you can set up Nginx reverse proxy.

Sub-directory Configuration

If your Ubuntu server already have a website served by Nginx, then you can configure the existing Nginx server block so that you can access uTorrent Web UI from a sub-directory of your domain name.

sudo nano /etc/nginx/conf.d/your-website.conf

In the server block,  paste the following directives. If you changed the port before, then you need to change it here too.

location /gui {
              proxy_pass http://localhost:8080;
              proxy_set_header Host $http_host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header X-Forwarded-Proto $scheme;
        }

Save and close the file. Then test Nginx configuration.

sudo nginx -t

If the test is successful, reload Nginx.

sudo systemctl reload nginx

Now you can access uTorrent Web UI via

your-domain.com/gui

Sub-domain Configuration

If you don’t have an existing website on the Ubuntu server, then you have to create a new server block file. Install Nginx on Ubuntu 18.04 or Ubuntu 19.04.

sudo apt install nginx

Start Nginx web server.

sudo systemctl start nginx

Then create a new server block file in /etc/nginx/conf.d/ directory.

sudo nano /etc/nginx/conf.d/utserver-proxy.conf

Paste the following text into the file. Replace utorrent.your-domain.com with your preferred sub-domain and don’t forget to create A record for it.

server {
       listen 80;
       server_name utorrent.your-domain.com;
       error_log /var/log/nginx/uttorrent.error;

       location /gui {
              proxy_pass http://localhost:8080;
              proxy_set_header Host $http_host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header X-Forwarded-Proto $scheme;
        }
}

Save and close the file. Then test Nginx configuration.

sudo nginx -t

If the test is successful, reload Nginx.

sudo systemctl reload nginx

Now you can access uTorrent Web UI via

utorrent.your-domain.com/gui

Setting up Apache Reverse Proxy

If you use Apache web server rather than Nginx, then follow the instructions below to set up reverse proxy.

Install Apache web server.

sudo apt install apache2

To use Apache as a reverse proxy, we need to enable the proxy modules and we will also enable the rewrite module.

sudo a2enmod proxy proxy_http rewrite

Then create a virtual host file for uTorrent.

sudo nano /etc/apache2/sites-available/utorrent.conf

Put the following configurations into the file. Replace utorrent.your-domain.com with your actual domain name and don’t forget to set an A record for it.

<VirtualHost *:80>
    ServerName utorrent.your-domain.com

    RewriteEngine on
    RewriteRule ^/gui(/?)(.*)$ /$2 [PT]

    ProxyPreserveHost on
    ProxyPass / http://127.0.0.1:8080/gui/
    ProxyPassReverse / http://127.0.0.1:8080/gui/
</VirtualHost>

Save and close the file. Then enable this virtual host.

sudo a2ensite utorrent.conf

Restart Apache for the changes to take effect.

sudo systemctl restart apache2

Now you can remotely access uTorrent server by entering the subdomain (utorrent.your-domain.com ) in browser address bar. If uTorrent Web UI doesn’t load, then you may need to delete the default virtual host file and restart Apache web server.

Enabling HTTPS

To encrypt the HTTP traffic, we can enable HTTPS by installing a free TLS certificate issued from Let’s Encrypt. Run the following command to install Let’s Encrypt client (certbot) on Ubuntu 18.04 or Ubuntu 19.04 server.

sudo apt install certbot

If you use Nginx, then you also need to install the Certbot Nginx plugin.

sudo apt install python3-certbot-nginx

Next, run the following command to obtain and install TLS certificate.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d utorrent.your-domain.com

If you use Apache, install the Certbot Apache plugin.

sudo apt install python3-certbot-apache

And run this command to obtain and install TLS certificate.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d utorrent.your-domain.com

Where

  • --nginx: Use the nginx plugin.
  • --apache: Use the Apache plugin.
  • --agree-tos: Agree to terms of service.
  • --redirect: Force HTTPS by 301 redirect.
  • --hsts: Add the Strict-Transport-Security header to every HTTP response. Forcing browser to always use TLS for the domain. Defends against SSL/TLS Stripping.
  • --staple-ocsp: Enables OCSP Stapling. A valid OCSP response is stapled to the certificate that the server offers during TLS.

The certificate should now be obtained and automatically installed.

utorrent server linux

Now you should be able to access uTorrent server via https://utorrent.your-domain.com/gui.

How to Uninstall uTorrent on Ubuntu

To remove uTorrent, first stop the current uTorrent process.

sudo pkill utserver

Then remove the installation directory.

sudo rm -r /opt/utorrent-server-alpha-v3_3/

And remove the symbolic link.

sudo rm /usr/bin/utserver

Wrapping Up

I hope this tutorial helped you install uTorrent on Ubuntu 18.04 LTS and Ubuntu 19.04. You may also want to check out tutorials on how to install Deluge or qBitTorrent on Ubuntu. As always, if you found this post useful, then subscribe to our free newsletter to get more tips and tricks. Take care 🙂

Rate this tutorial
[Total: 2 Average: 5]

39 Responses to “How to Install uTorrent in Ubuntu 18.04 and Ubuntu 19.04

  • In ubuntu 19.04 libssl1.0.0 installation error:
    sudo aptitude install libssl1.0.0
    No candidate version found for libssl1.0.0
    Unable to apply some actions, aborting
    when i start the utserver get the error:
    utserver -settingspath /home/user/apps/utorrent-server-alpha-v3_3/ -daemon
    utserver: error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory

    • same here, must be recent?

    • If you are using Ubuntu 19.04, you need to download the libssl1.0.0 deb package from Ubuntu 18.04 repository and install it, because libssl1.0.0 isn’t included in Ubuntu 19.04 software repository.

      wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5.3_amd64.deb
      
      sudo apt install ./libssl1.0.0_1.0.2n-1ubuntu5.3_amd64.deb
  • dhamokk
    1 year ago

    Succsessfully installed on a Ubuntu Server 18.04 LTS. While installing the libssl1.0.0, it told me, there already was a newer version installed (1.0.2n-1ubuntu5.3) and in the end everything worked. Thank you!

  • Nicholas Barwig
    12 months ago

    I have installed uTorrent 64 bit on Ubuntu 18.04. Following the start up instructions I copied and saved the suggested content of the /etc/systemd/system/utserver.service file:

    [Unit]
    Description=uTorrent Server
    After=network.target
    
    [Service]
    Type=simple
    User=utorrent
    Group=utorrent
    ExecStart=/usr/bin/utserver -settingspath /opt/utorrent-server-alpha-v3_3/
    ExecStop=/usr/bin/pkill utserver
    Restart=always
    SyslogIdentifier=uTorrent Server
    
    [Install]
    WantedBy=multi-user.target

    However, when I attempt to start, it will not and the following invalid argument I get:
    Sep 07 16:31:49 desktop systemd[1]: /etc/systemd/system/utserver.service:10: Missing ‘=’.
    I do not know what to do at this stage.
    I am not an Ubuntu or either a uTorrent expert, this is the first time I do this.
    Any suggestions would be appreciated.

  • Nicholas Barwig
    12 months ago

    After running your command, I get the following output:

    [Unit]
    Description=uTorrent Server
    After=network.target

    [Service]
    Type=simple
    User=utorrent
    Group=utorrent
    ExecStart=/usr/bin/utserver -settingspath
    /opt/utorrent-server-alpha-v3_3/
    ExecStop=/usr/bin/pkill utserver
    Restart=always
    SyslogIdentifier=uTorrent Server

    [Install]
    WantedBy=multi-user.target

  • Nicholas Barwig
    12 months ago

    The ExecStart line is the following now:

    ExecStart=/usr/bin/utserver -settingspath /opt/utorrent-server-alpha-v3_3/

    Can you please tell me, how should I modify it?

    Thanks

    • Your file is now correct. Run the following command to reload Systemd.

      sudo systemctl daemon-reload

      Then start uTorrent server.

      sudo systemctl start utserver

      Enable auto start at boot time.

      sudo systemctl enable utserver
  • Crapulax
    12 months ago

    Thanks a lot ! 🙂

  • KETHAVATH SIVA NAIK
    11 months ago

    how to speed up the download.

  • Crapulax
    11 months ago

    Hi ! I successfully installed a ut server following your instructions about 10 days ago (TY!) But when I tried using it again yesterday, I couldn’t .
    I’m using firefox, and it says : Can’t connect to server at adress localhost:8080
    I feel I’m missing something obvious.
    I reread the tutorial in case you told how to avoid that, but I didn’t find anything there.
    Could you please help me out ?
    Thanks

    • It’s mostly likely because utorrent isn’t running on your system. Use the systemd service to start uTorrent server.

      sudo systemctl start utserver

      Enable auto start at boot time.

      sudo systemctl enable utserver
  • hi, after running localhost:8080/gui i get this:

    bash: localhost:8080/gui: No such file or directory
    

    please help!

  • Forgive my stupidity but is there a way to have uT open magnet links when I click on them automatically?

  • I allowed ports still ufw is blocking and my torrent stopped everytime. 🙁

    noddy kernel: [ 6714.159283] [UFW BLOCK] IN=enp3s0 OUT= MAC= SRC= DST=192.168.0.106 LEN=132 TOS=0x00 PREC=0x00 TTL=115 ID=38311 PROTO=UDP SPT=47723 DPT=6881 LEN=112

  • Hi,

    Big thanks for the manual. I’m also a beginner at linux and can’t get it to work yet. I’ve downloadend and stilled libssl1.0.0_1.0.2n-1ubuntu5.3_arm64.deb. But when i wanna start this command i get an error:

    marnix@server:~$ utserver -settingspath /opt/utorrent-server-alpha-v3_3/ -daemon

    Command ‘utserver’ not found, did you mean:

    command ‘ttserver’ from deb tokyotyrant (1.1.40-4.2build1)
    command ‘uaserver’ from deb python-opcua-tools (0.98.6-3)

    Try: sudo apt install

    Any idea what i’m doing wrong?

    • oops… I replied to myself instead of you, like a dummy. Let’s try this again:

      You should not need the -daemon switch. Are you running this on a raspberry pi or similar tiny PC? You seem to have the wrong version of libssl installed, unless the system actually does have an ARM processor. It seems that what you want is amd64. If you actually are using an ARM cpu, then I am just blowing smoke and I wish you well.

  • There is a well-documented bug of settings not persisting between service restarts (or system reboots) in the latest version, 3.3. This was remedied in 3.3.1, but that was a full desktop release, not server. Anyone have any hints on how to get around this issue?

  • Hey ,
    I successfully installed utorrent server on my linux machine as a service and can access the web ui. However, everytime I try to download a torrent, it starts downloading at 5/10Mbps then after 4-5 seconds it immediately stops (no error reported). Anybody know how i can solve this?
    Thanks in advance

    • marcotti
      5 months ago

      Same problem here.
      I noticed that if you flag “Pre-allocate all files”, it doesn’t start at all.
      This let me think to a permission problem (w/o the flag, as long as it is in memory it goes, then it stops, w/ the flag, it doesn’t even start).
      I checked the persmission and everything is assigned to utorrent:utorrent.

      Any clue?

      • marcotti
        5 months ago

        Update: I set everything back to “root” as the owner of the directory as the user that runs the server and now everything works.
        So to me there’s some missing step to grant permission to the user “utorrent”.

        P.S.: I’m running Ubuntu 19.10
        P.S.2: I’m using an external USB HDD NTFS to store the data (where owner is root, but chmod is 777)

  • Newb question. Got it up and running fine with my login. Then I set up the utorrent/utorrent accounts. Now I can’t login to utorrent, either with my own account, nor with the utorrent account. It’s asking for a password that I don’t have. Any help would be greatly appreciated.

  • Sry, just noticed that it reverted back to admin. I’ll fix that in the gui. Thanks for a great tutorial. Learn enough to get myself in trouble.

  • thank you broo! <3

  • I have noticed that when you reboot it wipes out all of your settings/preferences. Is this normal behavior for everyone else? Is there a way to fix it? I would like the settings to persist, if not, then the auto restart via systemctl on reboot is probably not a good idea. After any random reboot your utorrent server will be open to the public until you can log back in and secure it with a password again.

    • It seems you need to supply a config file to utserver to store the settings. In the systemd service file, change

      /usr/bin/utserver -settingspath /opt/utorrent-server-alpha-v3_3/

      To

      /usr/bin/utserver -settingspath /opt/utorrent-server-alpha-v3_3 -configfile /opt/utorrent-server-alpha-v3_3/utserver.conf

      Save and close the file. Then download a template config file.

      sudo wget https://gist.githubusercontent.com/drunkirishcoder/d48ddde9f55ea64b1183/raw/44282030a87514888655d2d98bb3341111293d97/utserver.conf -O /opt/utorrent-server-alpha-v3_3/utserver.conf

      Delete the settings.dat file, or the utserver.conf file won’t be loaded.

      sudo rm /opt/utorrent-server-alpha-v3_3/settings.dat*

      Reload systemd.

      sudo systemctl daemon-reload

      You need to edit the utserver.conf file to save your settings. Changes made in the Web UI won’t be saved. After that, restart utserver.

      sudo systemctl restart utserver
  • Th3Breaker
    3 months ago

    Hi, if i start the download, 2 sec later the download stopped, could it be a permission problem?

  • Hey, I had not changed the default directory. Where is the downloaded data has been saved?

  • Thx for very good instructions!
    Well, everything work fine on my machine. I am sure that everybody here will setup their uTorrent server one day like me, but what after that?
    Question of the questions is: How put torrent in uTorrent if it is magnet link?
    How to associate .torrent to always open in a program as is the case with the desktop version of the uTorrent client?
    I haven’t found a way to do that.

  • good, thanks

  • After following the instructions for securing via https and creating a sub domain. Everything works so far except i cant download via web ui. after clicking the link to download via web ui i get a 404 error from nginx,

Leave a Comment

  • Comments with links are moderated by admin before published.
  • Your email address will not be published.
  • Use <pre> ... </pre> HTML tag to quote the output from your terminal/console.
  • Please use the community (https://community.linuxbabe.com) for questions unrelated to this article.
  • I don't have time to answer every question. Making a donation would incentivize me to spend more time answering questions.


The maximum upload file size: 2 MB.
You can upload: image.