Difference between revisions of "Deluge"

From ArchWiki
Jump to: navigation, search
(Daemon Mode)
m (SSH Tunnel - extra_lo_addr.service should be a oneshot service)
(39 intermediate revisions by 8 users not shown)
Line 1: Line 1:
[[de:Deluge Installation]]
+
[[de:Deluge]]
 
[[es:Deluge]]
 
[[es:Deluge]]
 
[[ko:Deluge]]
 
[[ko:Deluge]]
 
[[Category:Internet Applications]]
 
[[Category:Internet Applications]]
 
{{Article summary start}}
 
{{Article summary start}}
{{Article summary text|Deluge is a lightweight, BitTorrent client written in python that offers users three options for interaction including a WebUI, GTK-UI, and console interface.}}
+
{{Article summary text|A lightweight, full-featured BitTorrent application with a client/server model}}
{{Article summary heading|Related Articles}}
+
{{Article summary heading|Related}}
{{Article summary wiki|PeerGuardian Linux}}
+
{{Article summary wiki|rTorrent}}
{{Article summary wiki|Ufw}}
+
{{Article summary wiki|systemd}}
 +
{{Article summary wiki|systemd/User}}
 +
{{Article summary wiki|iptables}}
 +
{{Article summary wiki|OpenSSL}}
 +
{{Article summary heading|External Links}}
 +
{{Article summary text|[http://deluge-torrent.org/ Deluge Homepage]}}
 +
{{Article summary text|[http://dev.deluge-torrent.org/wiki Deluge Wiki]}}
 
{{Article summary end}}
 
{{Article summary end}}
  
==Installation==
+
[http://deluge-torrent.org/ Deluge] is a lightweight but full-featured BitTorrent application written in Python 2. It has a variety of features, including but not limited to: a client/server model, DHT support, magnet links, a plugin system, UPnP support, full-stream encryption, proxy support, and three different client applications. When the server daemon is running, users can connect to it via a console client, a GTK+-based GUI, or a Web-based UI. A full list of features can be viewed [http://dev.deluge-torrent.org/wiki/About here].
 +
 
 +
== Installation ==
 +
 
 
{{Pkg|deluge}} is available from the [[official repositories]].
 
{{Pkg|deluge}} is available from the [[official repositories]].
# pacman -S deluge
 
  
The gtk UI requires additional dependencies as does the webui. Inspect the pacman output to determine which are right for the intended application.
+
The GTK+ UI requires additional dependencies as does the Web UI. Inspect the pacman output to determine which are right for the intended application:
  python2-notify: libnotify notifications
+
  {{Pkg|python2-notify}}: libnotify notifications
  pygtk: needed for gtk ui
+
  {{Pkg|pygtk}}: needed for gtk ui
  librsvg: needed for gtk ui
+
  {{Pkg|librsvg}}: needed for gtk ui
  python2-mako: needed for web ui
+
  {{Pkg|python2-mako}}: needed for web ui
  
==Run modes==
+
== Daemon setup ==
Deluge can run as a system daemon which is accessible to any system user or it can run in a non-daemon mode.
+
  
===Daemon Mode===
+
{{Warning|If multiple users are running a daemon, the default port (58846) will need to be changed for each user.}}
Start the deluge backend daemon like any other systemd service:
+
Deluge comes with a daemon called {{ic|deluged}}. If it is not running when one of the clients is run, it will be started. It is useful, however, to have it started with systemd to allow torrents to run without starting a client and/or Xorg. This can be accomplished in one of two ways: a system service or a user service.
# systemd start deluged
+
  
To allow interaction with the daemon, create a user:password:level in {{ic|/srv/deluge/.config/deluge/auth}}. 
+
=== System service ===
For example:
+
# echo "delugeuser:p422WoRd:10" >> /srv/deluge/.config/deluge/auth
+
{{Note|The user/password created does not have to match any system users... and to maintain good security practices it should NOT!}}
+
  
The number '''10''' corresponds to a level of 'Admin.'  Refer to the following table for additional values:
+
A system service will allow {{ic|deluged}} to run at boot without the need to start Xorg or a client. Deluge comes with a system service called {{ic|deluged.service}}, which can be started and enabled without change:
 +
# systemctl start deluged
 +
# systemctl enable deluged
 +
This will run the deluge daemon as the '''deluge''' user, which is created by the deluge package. If you wish to run the daemon as another user, copy {{ic|/usr/lib/systemd/system/deluged.service}} to {{ic|/etc/systemd/system/deluged.service}} and change the User parameter within the file, such as the '''torrent''' user:
 +
User='''torrent'''
 +
In that case, you will have to create a user called '''torrent'''.
  
{| class="wikitable" align="center"
+
=== User service ===
|-
+
! Level Name !! Level Value
+
|-
+
| None || 0
+
|-
+
|Read Only || 1
+
|-
+
| Normal || 5
+
|-
+
| Admin || 10
+
|}
+
  
{{Note|In Deluge 1.35, these values have no effect, but multiuser options are under development.}}
+
A user service will allow {{ic|deluged}} to run when {{ic|systemd --user}} is started. This is accomplished by creating a user service file:
 +
{{hc|/etc/systemd/user/deluged.service|<nowiki>
 +
[Unit]
 +
Description=Deluge Daemon
 +
After=network.target
  
 +
[Service]
 +
ExecStart=/usr/bin/deluged -d -P %h/.config/deluge/deluge.pid
  
OLD ARTICLE
+
[Install]
 +
WantedBy=default.target
 +
</nowiki>}}
 +
The deluge user service can now be started and enabled by the user:
 +
$ systemctl --user start deluged
 +
$ systemctl --user enable deluged
  
===GTK UI===
+
The {{ic|deluged}} user service can also be placed in {{ic|$HOME/.config/systemd/user/}}. See [[systemd/User]] for more information on user services.
The GTK UI needs to have {{Pkg|pygtk}} and {{Pkg|librsvg}} installed on the clients.
+
If the deluge daemon is running stop it.
+
  
In order to connect remotely via the GTK UI, there should be something like this in {{ic|/srv/deluge/.config/deluge/core.conf}}:
+
== Configuration ==
"allow_remote": true,
+
  
Now add yourself to the authentification file:
+
Deluge can be configured through any of the clients as well as by simply editting the JSON-formatted configuration files located in {{ic|$HOME/.config/deluge/}}. '''$HOME''' refers to the home directory of the user that {{ic|deluged}} is running as. This means that if the daemon is running as the '''deluge''' user, the default home directory is {{ic|/srv/deluge/}}.
# echo "yourusername:yourpassword:10" >> /srv/deluge/.config/deluge/auth
+
  
The authentification level is not used at this time. Read [http://dev.deluge-torrent.org/wiki/UserGuide/Authentication more] about that.
+
=== Firewall ===
  
Start the Deluge daemon again.
+
Deluge requires at least one port open for TCP and UDP to allow incoming connections for seeding. If deluge is informing you that it cannot open a port for incoming connections, you must open ports you wish to use. In this example, ports 56881 through 56889 are opened for TCP and UDP:
 +
# iptables -A INPUT -p tcp --dport 56881:56889 -j ACCEPT
 +
# iptables -A INPUT -p udp --dport 56881:56889 -j ACCEPT
 +
If you are behind a NAT router/firewall, port forwards are also required there. UPnP may also be used, but that will not work with the local firewall on the system that the daemon is running on because it requires predefined ports.
 +
{{Note|You can limit this to just one port, but you must open any ports for both TCP and UDP.}}
  
Now start the GTK UI. If you prefer, you can edit the preferences in {{ic|~/.config/deluge/gtkui.conf}}, but there's also a nice configuration tool in the UI.
+
== Clients ==
  
Look for '''classic mode''' and disable it. Then go to Edit -> Connection Manager and add your daemon.
+
=== Console ===
  
===Web UI===
+
The console client can be run with:
The web UI daemon runs on the server and the clients only need a web browser. You need to install {{Pkg|python2-mako}} on the server.
+
$ deluge-console
 +
Enter the {{ic|help}} command for a list of available commands.
  
First, start the web UI [[daemon]], named ''deluge-web'', and login at {{ic|http://''ip-address'':8112}}. Where ''ip-address'' is the name of your Deluge server or its private or public IP address. When asked for a password, enter "deluge" as it is the default password.
+
=== GTK+ ===
  
The preferences in the web UI should be rather self explanatory and the first obvious thing to do is to change your password.
+
{{Note|If you plan on using the daemon (server) functionality, it is wise to disable Classic Mode in ''Edit -> Preferences -> Interface'', then restart the client.}}
 +
The GTK+ client can be run with:
 +
$ deluge-gtk
 +
or:
 +
$ deluge
  
====Automatically Connect To Daemon====
+
The GTK+ client has a number of useful plugins:
If you want to avoid clicking "connect" everytime you start the Deluge web UI, edit the {{ic|web.conf}} file in your configuration directory (usually {{ic|/srv/deluge/.config/deluge}})
+
* AutoAdd - Monitors directories for .torrent files
It should have a line like this towards the bottom:
+
* Blocklist - Downloads and imports an IP blocklist
'''
+
* Execute - Event-based command execution
"default_daemon": ""
+
* Extractor - Extracts archived files upon completion '''''(beware of random high disk I/O usage)'''''
 +
* Label - Allows labels to be assigned to torrents, as well as state, tracker, and keyword filters
 +
* Notifications - Provides notifications (email, pop-up, blink, sound) for events as well as other plugins
 +
* Scheduler - Limits active torrents and their speed on a per-hour, per-day basis
 +
* WebUi - Allows the Web UI to be started via the GTK+ client
  
Change it to:
+
=== Web ===
'''
+
"default_daemon": "127.0.0.1:58846"
+
  
This assumes that your Deluge port is the default 58846.
+
{{Note|It is recommended that you use https for the Web client.}}
 +
{{Warning|
 +
* If multiple users are running a daemon, the default port (8112) will need to be changed for each user.
 +
* The deluge Web client comes with a default password. See the Setup section.
 +
}}
 +
The Web UI can be started by running {{ic|deluge-web}}, through a plugin in the GTK+ UI, or via systemd. It has many of the same features of the GTK+ UI, including the plugin system.
  
====SSL====
+
==== System service ====
In case you want SSL for the web UI, you need to generate a new cert/key set. To do this, first stop the web UI daemon and then append to {{ic|/srv/deluge/.config/deluge/ssl/}}:
+
  
# openssl req -new -x509 -nodes -out deluge.cert.pem -keyout deluge.key.pem
+
Deluge comes with a system service file called {{ic|deluge-web.service}}. The process for this is the same as starting {{ic|deluged.service}}, except with {{ic|deluge-web}} instead of {{ic|deluged}}. This service will also run as the '''deluge''' user unless the service file is modified in the same way as {{ic|deluged.service}}.
  
Next you need to edit {{ic|/srv/deluge/.config/deluge/web.conf}} and change the '''pkey''' and '''cert''' configuration directives to use your new self-signed certificates and also enable SSL:
+
==== User service ====
...
+
"pkey": "ssl/deluge.key.pem",
+
...
+
"cert": "ssl/deluge.cert.pem",
+
...
+
"https": true,
+
  
Afterwards just start the web UI daemon again.
+
A user service will allow {{ic|deluge-web}} to run when {{ic|systemd --user}} is started. This is accomplished by creating a user service file:
 +
{{hc|/etc/systemd/user/deluge-web.service|<nowiki>
 +
[Unit]
 +
Description=Deluge Web UI
 +
After=deluged.service
  
====Apache configuration====
+
[Service]
 +
ExecStart=/usr/bin/deluge-web --ssl
  
As of this writing, it is possible to use ProxyPass and ProxyPassReverse with Apache to run your Deluge web UI with a web server. To do so, add the following lines to your {{ic|httpd.conf}}.
+
[Install]
 +
WantedBy=default.target
 +
</nowiki>}}
 +
The deluge user service can now be started and enabled by the user:
 +
$ systemctl --user start deluge-web
 +
$ systemctl --user enable deluge-web
  
Uncomment the Virtual Hosts line:
+
The {{ic|deluge-web}} user service can also be placed in {{ic|$HOME/.config/systemd/user/}}. See [[systemd/User]] for more information on user services.
  
Include conf/extra/httpd-vhosts.conf
+
==== Setup ====
  
That is all the editing that needs to be done for the {{ic|httpd.conf}}. Next, navigate to the {{ic|extra/}} folder and edit the {{ic|httpd-vhosts.conf}} file. Append to the file, the following:
+
When {{ic|deluge-web}} is initially started, it will create {{ic|$HOME/.config/deluge/web.conf}}. The password in this file is hashed with SHA1 and salted. The default password is "deluge". On the first visit, you will be advised to change the password.
  
{{bc|<VirtualHost *:80>
+
You will also be greeted by a warning from your browser that the SSL certificate is untrusted. You must add an exception to this in your browser to continue on. See the [[OpenSSL]] page for information on creating your own certificate.
    ServerAlias subdomain.example.com
+
 
    ProxyRequests off
+
== Headless setup ==
    ProxyPass / http://127.0.0.1:8112/
+
 
    ProxyPassReverse / http://127.0.0.1:8112/
+
Deluge is quite useful on a headless system, often referred to as a seed box, because of its client/server model. To set up deluge on a headless system, set up the daemon as shown above.
</VirtualHost>
+
 
 +
=== Create a user ===
 +
 
 +
To allow interaction with the server remotely, create a user in {{ic|$HOME/.config/deluge/auth}}. For example:
 +
$ echo "delugeuser:p422WoRd:10" >> $HOME/.config/deluge/auth
 +
{{Note|
 +
* The user/password created does not have to match any system users, and to maintain good security practices it should '''not'''!
 +
* The user/password in this file are not hashed or salted like in the web client config.
 
}}
 
}}
  
==Troubleshooting==
+
The number '''10''' corresponds to a level of '''Admin'''.  Refer to the following table for additional values:
=== Magnet Links Are Broken with Chromium ===
+
 
The following command should return "deluge.desktop":
+
{| class="wikitable" align="center"
  $ xdg-mime query default "x-scheme-handler/magnet"
+
|-
 +
! Level Name !! Level Value
 +
|-
 +
| None || 0
 +
|-
 +
|Read Only || 1
 +
|-
 +
| Normal || 5
 +
|-
 +
| Admin || 10
 +
|}
 +
 
 +
{{Note|In Deluge 1.35, these values have no effect, but multiuser options are under development.}}
 +
 
 +
=== Allow remote ===
 +
 
 +
The default settings disallow remote connections. Change the "allow_remote" setting in {{ic|$HOME/.config/deluge/core.conf}}:
 +
"allow_remote": true,
 +
 
 +
=== Firewall ===
 +
 
 +
You will need to open the port for remote access. The following example uses the default daemon port (58846):
 +
  # iptables -A INPUT -p tcp --dport 58846 -j ACCEPT
 +
See [[iptables]] for more information on firewall rules.
 +
 
 +
If you are behind a NAT router/firewall, a port forward is also required there to access the daemon from outside the network.
 +
 
 +
=== Connect ===
 +
 
 +
In the console client:
 +
connect <host>[:<port>] <user> <password>
 +
 
 +
In the GTK+ client, ''Edit > Connection Manager > Add''.
  
If it returns a null, run this command:
+
In the Web client, ''Connection Manager > Add''.
$ xdg-mime default deluge.desktop application/x-bittorrent x-scheme-handler/magnet
+
  
Reference: https://bugs.archlinux.org/task/28011
+
==== SSH Tunnel ====
 +
An SSH tunnel can be created to use an encrypted connection on any client. This requires an extra loopback address to be added, but this can be automated at boot. The actual command to establish an SSH tunnel cannot because it requires user input. There are a few possible ways to go about doing that.
 +
{{hc|/etc/systemd/system/extra_lo_addr.service|<nowiki>
 +
[Unit]
 +
Description=extra loopback address
 +
Wants=network.target
  
=== Downloads don't start ===
+
[Service]
As of libtorrent-rasterbar version 0.16, Deluge will not download torrents that are added by a magnet link.
+
Type=oneshot
* https://bugs.archlinux.org/task/29414
+
RemainAfterExit=yes
* https://bbs.archlinux.org/viewtopic.php?id=151249
+
ExecStart=/sbin/ip addr add 127.0.0.2/8 dev lo
 +
ExecStop=/sbin/ip addr del 127.0.0.2/8 dev lo
  
Downgrading libtorrent-rasterbar to 1:0.16.3-1 should fix it. Use the following PKGBUILD:
+
[Install]
https://projects.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/libtorrent-rasterbar&id=da6a845f1f66026c2e0df71e8728ab0d8fd660b0
+
WantedBy=multi-user.target
 +
</nowiki>}}
  
=== Web UI doesn't store settings ===
+
$ ssh -fNL 127.0.0.2:58846:localhost:58846 <ssh host>
For some yet unknown reason, the web interface with Deluge 1.3.3 refuses to properly store the incoming (listen) ports configuration. This can manually be edited in core.conf. The Deluge bugtracker mentions this is fixed, it is not in 1.3.3.
+
The port '''58846''' should be replaced with the port the deluge server is running on and '''<ssh host>''' should be replaced with the server hosting both deluge and the SSH server.
  
{{hc|/srv/deluge/.config/deluge/core.conf|...
+
== See Also ==
"enc_prefer_rc4": true,
+
"listen_ports": [
+
  49160,
+
  49249
+
],
+
"dht": false,
+
...}}
+
  
=== Daemon won't start on fresh install ===
+
* [http://deluge-torrent.org/ Deluge homepage]
There seems to be an issue creating a folder with the correct permissions when the package installs, try:
+
* [http://dev.deluge-torrent.org/wiki Deluge wiki]
# chmod u+x /srv/deluge
+

Revision as of 17:53, 30 December 2013

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary heading Template:Article summary text Template:Article summary text Template:Article summary end

Deluge is a lightweight but full-featured BitTorrent application written in Python 2. It has a variety of features, including but not limited to: a client/server model, DHT support, magnet links, a plugin system, UPnP support, full-stream encryption, proxy support, and three different client applications. When the server daemon is running, users can connect to it via a console client, a GTK+-based GUI, or a Web-based UI. A full list of features can be viewed here.

Installation

deluge is available from the official repositories.

The GTK+ UI requires additional dependencies as does the Web UI. Inspect the pacman output to determine which are right for the intended application:

python2-notify: libnotify notifications
pygtk: needed for gtk ui
librsvg: needed for gtk ui
python2-mako: needed for web ui

Daemon setup

Warning: If multiple users are running a daemon, the default port (58846) will need to be changed for each user.

Deluge comes with a daemon called deluged. If it is not running when one of the clients is run, it will be started. It is useful, however, to have it started with systemd to allow torrents to run without starting a client and/or Xorg. This can be accomplished in one of two ways: a system service or a user service.

System service

A system service will allow deluged to run at boot without the need to start Xorg or a client. Deluge comes with a system service called deluged.service, which can be started and enabled without change:

# systemctl start deluged
# systemctl enable deluged

This will run the deluge daemon as the deluge user, which is created by the deluge package. If you wish to run the daemon as another user, copy /usr/lib/systemd/system/deluged.service to /etc/systemd/system/deluged.service and change the User parameter within the file, such as the torrent user:

User=torrent

In that case, you will have to create a user called torrent.

User service

A user service will allow deluged to run when systemd --user is started. This is accomplished by creating a user service file:

/etc/systemd/user/deluged.service
[Unit]
Description=Deluge Daemon
After=network.target

[Service]
ExecStart=/usr/bin/deluged -d -P %h/.config/deluge/deluge.pid

[Install]
WantedBy=default.target
 

The deluge user service can now be started and enabled by the user:

$ systemctl --user start deluged
$ systemctl --user enable deluged

The deluged user service can also be placed in $HOME/.config/systemd/user/. See systemd/User for more information on user services.

Configuration

Deluge can be configured through any of the clients as well as by simply editting the JSON-formatted configuration files located in $HOME/.config/deluge/. $HOME refers to the home directory of the user that deluged is running as. This means that if the daemon is running as the deluge user, the default home directory is /srv/deluge/.

Firewall

Deluge requires at least one port open for TCP and UDP to allow incoming connections for seeding. If deluge is informing you that it cannot open a port for incoming connections, you must open ports you wish to use. In this example, ports 56881 through 56889 are opened for TCP and UDP:

# iptables -A INPUT -p tcp --dport 56881:56889 -j ACCEPT
# iptables -A INPUT -p udp --dport 56881:56889 -j ACCEPT

If you are behind a NAT router/firewall, port forwards are also required there. UPnP may also be used, but that will not work with the local firewall on the system that the daemon is running on because it requires predefined ports.

Note: You can limit this to just one port, but you must open any ports for both TCP and UDP.

Clients

Console

The console client can be run with:

$ deluge-console

Enter the help command for a list of available commands.

GTK+

Note: If you plan on using the daemon (server) functionality, it is wise to disable Classic Mode in Edit -> Preferences -> Interface, then restart the client.

The GTK+ client can be run with:

$ deluge-gtk

or:

$ deluge

The GTK+ client has a number of useful plugins:

  • AutoAdd - Monitors directories for .torrent files
  • Blocklist - Downloads and imports an IP blocklist
  • Execute - Event-based command execution
  • Extractor - Extracts archived files upon completion (beware of random high disk I/O usage)
  • Label - Allows labels to be assigned to torrents, as well as state, tracker, and keyword filters
  • Notifications - Provides notifications (email, pop-up, blink, sound) for events as well as other plugins
  • Scheduler - Limits active torrents and their speed on a per-hour, per-day basis
  • WebUi - Allows the Web UI to be started via the GTK+ client

Web

Note: It is recommended that you use https for the Web client.
Warning:
  • If multiple users are running a daemon, the default port (8112) will need to be changed for each user.
  • The deluge Web client comes with a default password. See the Setup section.

The Web UI can be started by running deluge-web, through a plugin in the GTK+ UI, or via systemd. It has many of the same features of the GTK+ UI, including the plugin system.

System service

Deluge comes with a system service file called deluge-web.service. The process for this is the same as starting deluged.service, except with deluge-web instead of deluged. This service will also run as the deluge user unless the service file is modified in the same way as deluged.service.

User service

A user service will allow deluge-web to run when systemd --user is started. This is accomplished by creating a user service file:

/etc/systemd/user/deluge-web.service
[Unit]
Description=Deluge Web UI
After=deluged.service

[Service]
ExecStart=/usr/bin/deluge-web --ssl

[Install]
WantedBy=default.target

The deluge user service can now be started and enabled by the user:

$ systemctl --user start deluge-web
$ systemctl --user enable deluge-web

The deluge-web user service can also be placed in $HOME/.config/systemd/user/. See systemd/User for more information on user services.

Setup

When deluge-web is initially started, it will create $HOME/.config/deluge/web.conf. The password in this file is hashed with SHA1 and salted. The default password is "deluge". On the first visit, you will be advised to change the password.

You will also be greeted by a warning from your browser that the SSL certificate is untrusted. You must add an exception to this in your browser to continue on. See the OpenSSL page for information on creating your own certificate.

Headless setup

Deluge is quite useful on a headless system, often referred to as a seed box, because of its client/server model. To set up deluge on a headless system, set up the daemon as shown above.

Create a user

To allow interaction with the server remotely, create a user in $HOME/.config/deluge/auth. For example:

$ echo "delugeuser:p422WoRd:10" >> $HOME/.config/deluge/auth
Note:
  • The user/password created does not have to match any system users, and to maintain good security practices it should not!
  • The user/password in this file are not hashed or salted like in the web client config.

The number 10 corresponds to a level of Admin. Refer to the following table for additional values:

Level Name Level Value
None 0
Read Only 1
Normal 5
Admin 10
Note: In Deluge 1.35, these values have no effect, but multiuser options are under development.

Allow remote

The default settings disallow remote connections. Change the "allow_remote" setting in $HOME/.config/deluge/core.conf:

"allow_remote": true,

Firewall

You will need to open the port for remote access. The following example uses the default daemon port (58846):

# iptables -A INPUT -p tcp --dport 58846 -j ACCEPT

See iptables for more information on firewall rules.

If you are behind a NAT router/firewall, a port forward is also required there to access the daemon from outside the network.

Connect

In the console client:

connect <host>[:<port>] <user> <password>

In the GTK+ client, Edit > Connection Manager > Add.

In the Web client, Connection Manager > Add.

SSH Tunnel

An SSH tunnel can be created to use an encrypted connection on any client. This requires an extra loopback address to be added, but this can be automated at boot. The actual command to establish an SSH tunnel cannot because it requires user input. There are a few possible ways to go about doing that.

/etc/systemd/system/extra_lo_addr.service
[Unit]
Description=extra loopback address
Wants=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/ip addr add 127.0.0.2/8 dev lo
ExecStop=/sbin/ip addr del 127.0.0.2/8 dev lo

[Install]
WantedBy=multi-user.target
$ ssh -fNL 127.0.0.2:58846:localhost:58846 <ssh host>

The port 58846 should be replaced with the port the deluge server is running on and <ssh host> should be replaced with the server hosting both deluge and the SSH server.

See Also