Deluge

提供: ArchWiki
2015年10月27日 (火) 00:57時点におけるKusakata (トーク | 投稿記録)による版
ナビゲーションに移動 検索に移動

関連記事

Deluge は Python 2 で書かれた軽量かつフル機能の BitTorrent アプリケーションです。以下のような様々な機能が揃っています: クライアント/サーバーモデル、DHT のサポート、マグネットリンク、プラグインシステム、UPnP のサポート、フルストリーム暗号、プロキシのサポート、3つの異なるクライアントアプリケーション。サーバーデーモンが動作している間、ユーザーはコンソールクライアントや GTK+ ベースの GUI、またはウェブベースの UI を使って接続することができます。完全な機能のリストは こちら から見れます。

インストール

deluge公式リポジトリからインストールできます。また、任意で python2-service-identity が必要になります。このパッケージがないと、長い警告を見ることになり、正しい証明者やホスト名のマッピングがクライアントによって拒否されることがあります。

GTK+ UI には Web UI と同じように別の依存パッケージがあります。pacman の出力をよく確認してどれが必要か判断してください:

python2-notify: libnotify 通知
pygtk: gtk ui を使うのに必須
librsvg: gtk ui を使うのに必須
python2-mako: web ui を使うのに必須

デーモンのセットアップ

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

Deluge には deluged という名前のデーモンが付属しています。クライアントを動かした時にデーモンが動作していない場合、デーモンが起動します。ただし、デーモンは systemd で起動すれば、クライアントや Xorg を起動することなく torrent を扱うことができます。systemd による起動には2つの方法があります: システムサービスとユーザーサービスです。

システムサービス

システムサービスを使うことで Xorg やクライアントを起動することなくブート時に deluged を起動することができます。Deluge には deluged.service という名前のシステムサービスが付属しており、特に変更を加えることなく起動・有効化できます:

# systemctl start deluged
# systemctl enable deluged

上記のコマンドでは deluge はパッケージによって作成された deluge ユーザーで実行されます。他のユーザーでデーモンを実行したい場合、/usr/lib/systemd/system/deluged.service/etc/systemd/system/deluged.service にコピーして、ファイル内の User パラメータを変更してください (例: torrent):

User=torrent

この場合、torrent という名前のユーザーを作成してください。

ユーザーサービス

ユーザーサービスを使うことで systemd --user が実行されたときに deluged を起動することができます。以下のユーザーサービスファイルを作成することで使うことが可能です:

/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

ユーザーから deluge のユーザーサービスを起動・有効化してください:

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

deluged のユーザーサービスは $HOME/.config/systemd/user/ に配置することもできます。ユーザーサービスについて詳しくは systemd/ユーザー を見て下さい。

設定

Deluge はクライアントを使って設定することも、$HOME/.config/deluge/ にある JSON フォーマットの設定ファイルを編集して設定することもできます ($HOMEdeluged を動作させるユーザーのホームディレクトリです、デーモンが deluge ユーザーによって動作している場合、デフォルトのホームディレクトリは /srv/deluge/ になります)。

ファイアウォール

Deluge requires at least one port open for TCP and UDP to allow incoming connections for seeding. If deluge complaining that it cannot open a port for incoming connections, users must open port(s) to be used. 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

User who are behind a NAT router/firewall must setup the corresponding ports to be forwarded. UPnP may also be used, but that will not work with the local firewall on the system because it requires predefined ports.

ノート: One can limit this to a single port, just be sure to enable both TCP and UDP.

On many default configurations, when using iptables with connection tracking (conntrack) set to drop "INVALID" packets, sometimes a great deal of legitimate torrent traffic (especially DHT traffic) is dropped as "invalid." This is typically caused by either conntrack's memory restrictions, or from long periods between packets among peers (see [1] towards the bottom and [2]). Symptoms of this problem include torrents not seeding, especially when the torrent client has been active for more than a day or two continuously, and consistently low overhead traffic (in one experience, less than 3KiB/s in either in or out) with DHT enabled, even when deluge/libtorrent has been continuously running for more than forty-eight hours and many torrents are active. For this reason, it may be necessary to disable connection tracking of all torrent traffic for optimal performance, even with the listening ports set to ACCEPT (as the causes for dropping INVALID packets, for instance conntrack's memory problems, may supercede any rules to accept traffic to/from those ports).

To fully turn off connection tracking for torrents, specify ports for both Incoming and Outgoing traffic in Deluge, for instance, 56881-56889 for incoming connections and 56890-57200 for outgoing connections.

ノート: Limiting incoming connections is not recommended with libtorrent as this will limit the ability to keep multiple connections to the same client, even for different torrents.

Then issue the following commands (after substituting the relevant port ranges):

# iptables -t raw -I PREROUTING -p udp --dport 56881:57200 -j NOTRACK
# iptables -t raw -I OUTPUT -p udp --sport 56881:57200 -j NOTRACK
# iptables -t raw -I PREROUTING -p tcp --dport 56881:57200 -j NOTRACK
# iptables -t raw -I OUTPUT -p tcp --sport 56881:57200 -j NOTRACK
# iptables -I INPUT -p icmp --icmp-type 3 -j ACCEPT
# iptables -I INPUT -p icmp --icmp-type 4 -j ACCEPT
# iptables -I INPUT -p icmp --icmp-type 11 -j ACCEPT
# iptables -I INPUT -p icmp --icmp-type 12 -j ACCEPT

The ICMP allowances are desirable because once connection tracking is disabled on those ports, those important ICMP messages (types 3 (Destination Unreachable), 4 (Source Quench), 11 (Time Exceeded) and 12 (Parameter Problem)) would otherwise be declared INVALID themselves (as netfilter would not know of any connections that they are associated with), and they would potentially be blocked.

警告: A port range of 1024:65535 would break every DNS query.

クライアント

コンソール

コンソールクライアントは次のコマンドで起動できます:

$ deluge-console

利用可能なコマンドのリストを確認したいときは help コマンドを使って下さい。

GTK+

ノート: It is wise to disable Classic Mode in Edit -> Preferences -> Interface for daemon (server) setups.

GTK+ クライアントは次のコマンドで起動できます:

$ deluge-gtk

または:

$ deluge

GTK+ クライアントには便利なプラグインがたくさん付いています:

  • AutoAdd - .torrent ファイルのディレクトリを監視。
  • Blocklist - IP ブロックリストをダウンロード・インポート。
  • Execute - イベントによってコマンドを実行。
  • Extractor - ダウンロード完了時に圧縮ファイルを解凍 (ディスク I/O の使用量が増えることがあるので注意)
  • 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

ノート: ウェブクライアントでは https を使うことが推奨されています。
警告:
  • 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.

Web UI は GTK+ UI のプラグインや systemd によって deluge-web を実行することで起動できます。GTK+ UI とほぼ同じ機能が揃っており、プラグインシステムも完備しています。

システムサービス

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.

ユーザーサービス

ユーザーサービスを使うことで systemd --user が実行されたときに deluge-web を起動することができます。以下のユーザーサービスファイルを作成することで使うことが可能です:

/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

ユーザーから deluge のユーザーサービスを起動・有効化してください:

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

deluge-web のユーザーサービスは $HOME/.config/systemd/user/ に配置することもできます。ユーザーサービスについて詳しくは systemd/ユーザー を見て下さい。

セットアップ

deluge-web を初めて起動すると、$HOME/.config/deluge/web.conf が作成されます。このファイル内のパスワードは SHA1 でハッシュ化されます。デフォルトパスワードは "deluge" です。

Users may be greeted by a warning from the browser that the SSL certificate is untrusted. Add an exception to this in the browser to continue on. See the OpenSSL page for information on creating your own certificate.

ヘッドレスセットアップ

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.

ユーザーの作成

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
ノート:
  • 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
ノート: In Deluge 1.35, these values have no effect, but multiuser options are under development.

リモートの許可

デフォルト設定ではリモート接続は許可されていません。$HOME/.config/deluge/core.conf の "allow_remote" 設定を変更してください:

"allow_remote": true,

ファイアウォール

Open the port for remote access. The following example uses the default daemon port (58846):

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

ファイアウォールのルールに関する詳細は iptables を見て下さい。

Users behind a NAT router/firewall must forward the port to access the daemon from outside the network if this behavior is desired.

接続

コンソールクライアントの場合:

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

GTK+ クライアントの場合: Edit > Connection Manager > Add

ウェブクライアントの場合: Connection Manager > Add

SSH トンネル

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. Without this step, the connection would be considered local. The actual command to establish an SSH tunnel cannot be automated as 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.

参照