Deluge
Deluge は Python 3 で書かれたフル機能の BitTorrent アプリケーションです。以下のような様々な機能が揃っています: クライアント/サーバーモデル、DHT のサポート、マグネットリンク、プラグインシステム、UPnP のサポート、フルストリーム暗号、プロキシのサポート、3つの異なるクライアントアプリケーション。サーバーデーモンが動作している間、ユーザーはコンソールクライアントや GTK+ ベースの GUI、またはウェブベースの UI を使って接続することができます。完全な機能のリストは こちら から見れます。
インストール
deluge パッケージからインストールできます。GTK+ クライアントを使うには pygtkAUR パッケージが必要です。Be sure to read and install the optional dependencies for the gtk client deluge-gtk to enable desktop notifications and appindicator notifications.
デーモン
Deluge はクライアント・サーバーモデルで稼働します。サーバーはデーモンとも呼ばれバックグラウンドで動作してクライアント (コンソール, gtk, ウェブベース) が接続してくるのを待機します。クライアントが切断してもデーモンはキューに入った torrent ファイルの転送を実行し続けます。
インストール時、pacman は非特権の deluge ユーザーを作成します。付属の /usr/bin/deluged
デーモンを実行するためのユーザーです。デーモンを起動する方法は複数存在します:
- Systemd のシステムサービス (deluge ユーザーとして実行)。
- Systemd のユーザーサービス (他のユーザーとして実行)。
- 直接実行 (他のユーザーとして実行)。
システムサービス
deluged.service
サービスを起動/有効化してください。
ユーザーサービス
ユーザーサービスを使うことで 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 フォーマットの設定ファイルを編集して設定することもできます ($HOME は deluged
を動作させるユーザーのホームディレクトリです、デーモンが deluge ユーザーによって動作している場合、デフォルトのホームディレクトリは /srv/deluge/
になります)。
ダウンロード・アップロードに共有ディレクトリを使う
systemd の deluged.service
を使用する場合、共有ディレクトリはシステムの他のユーザーがデータにアクセスできるように共有する必要があります。一般的な設定例:
- 共有ディレクトリの所有者と所有グループを
deluge:deluge
に変更。 - 共有ディレクトリのファイルのパーミッションと属性を最低でも 770 に設定。
- (ファイルにアクセスする必要がある) ユーザーを deluge グループに追加。
/mnt/torrent_data
を使用する場合:
# chown -R deluge:deluge /mnt/torrent_data # chmod 770 /mnt/torrent_data # usermod -a -G deluge YOURUSER
ファイアウォール
Deluge は、シード用の着信接続を許可するために、TCP および UDP の少なくとも1つのポートを開く必要があります。Deluge が着信接続用のポートを開くことができない場合、ユーザーは使用するポート(複数可)を開く必要があります。この例では、ポート56881 から 56889 が TCP および UDP 用に開かれています。
# iptables -A INPUT -p tcp --dport 56881:56889 -j ACCEPT # iptables -A INPUT -p udp --dport 56881:56889 -j ACCEPT
NAT ルーター/ファイアウォールの背後にいるユーザーは、転送に対応するポートを設定する必要があります。 UPnP も使用できますが、事前定義されたポートが必要なため、システムのローカルファイアウォールでは機能しません。
多くのデフォルト設定では、接続追跡 (conntrack) で iptables を使用して 無効な パケットをドロップするように設定すると、大量の正当なトレント トラフィック (特に DHT トラフィック) が 無効 としてドロップされる場合があります。これは通常、conntrack のメモリ制限、またはピア間のパケット間の長い時間によって発生します (最下部の [1] および [2] を参照)。この問題の症状には、特にトレント クライアントが 1 〜 2 日以上継続してアクティブな場合に、トレントがシードされないこと、DHT を有効にして、deluge/libtorrent が 48 時間以上継続して実行され、多くのトレントがアクティブな場合でも、常に低いオーバーヘッド トラフィック (ある報告では、入出力ともに 3KiB/s 未満) が発生することなどがあります。このため、リスニング ポートを ACCEPT に設定しても、最適なパフォーマンスを得るためには、すべてのトレント トラフィックの接続追跡を無効にする必要があるかもしれません (conntrack のメモリ問題など、無効なパケットをドロップする原因が、これらのポートへのトラフィック/ポートからのトラフィックを受け入れるルールに優先する場合があるためです。)
トレントの接続追跡を完全にオフにするには、Deluge の受信トラフィックと送信トラフィックの両方にポートを指定します。
次のコマンドを発行します(関連するポート範囲を置き換えた後)
# 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
これらのポートで接続追跡が無効になると、これらの重要な ICMP メッセージ (タイプ3 (Destination Unreachable),4 (Source Quench),11 (Time Exceeded),および12 (Parameter Problem) が無効と宣言されるため、ICMP 許容値が望ましいです。それら自体(netfilter はそれらが関連付けられている接続を認識しないため)およびそれらは潜在的にブロックされます。
プラグイン
完全なプラグインのリストは Deluge Wiki にあります。
ltConfig は libtorrent の設定を直接変更できる便利なプラグインで、プリセットにも対応しています。
このプラグインは announce_ip
のような追加設定を提供します。(トラッカーにアナウンスする IP), half_open_limit
のような追加設定を提供します。(最大半開放接続数の制限を解除する) などの追加設定や、プライバシーや (シード) スピードブースト機能を提供します。
クライアント
コンソール
コンソールクライアントは次のコマンドで起動できます:
$ deluge-console
利用可能なコマンドのリストを確認したいときは help
コマンドを使って下さい。
GTK+
GTK+ クライアントは次のコマンドで起動できます:
$ deluge-gtk
または:
$ deluge
GTK+ クライアントには便利なプラグインがたくさん付いています:
- AutoAdd - .torrent ファイルのディレクトリを監視。
- Blocklist - IP ブロックリストをダウンロード・インポート。
- Execute - イベントによってコマンドを実行。
- Extractor - ダウンロード完了時に圧縮ファイルを解凍 (ディスク I/O の使用量が増えることがあるので注意)。
- Label - ラベルをトレント、状態、トラッカー、キーワードフィルターに割り当てることができます
- Notifications - イベントやその他のプラグインの通知(電子メール、ポップアップ、点滅、サウンド)を提供します
- Scheduler - 1時間ごと、1日ごとに、アクティブなトレントとその速度を制限します
- WebUi - GTK+ クライアントを介して WebUI を開始できるようにします
Web
ユーザーがデーモンへの GTK またはシェルベースのアクセスを望まない場合は、Web クライアントも提供されます。上記の Deluge デーモンと同様に、Web クライアントはいくつかの異なる方法で起動できます。
- Systemd system サービス (deluge のユーザーとして実行)
- Systemd user サービス (別のユーザーとして実行)
- 直接実行する (別のユーザーとして実行)
実行後、https://127.0.0.1:8112 で暗号化を使用している場合、またはホスト IP アドレスで暗号化を使用している場合、ユーザーは http://127.0.0.1:8112 を参照して Web クライアントに接続できます。
システムサービス
Deluge には Deluge のウェブ UI を起動するのに使用する systemd システムユニットである deluge-web.service
が付属しています。Deluge Web UI は Connection Manager を使用して同一ホスト上で複数の Deluge クライアントを管理します。ウェブ UI クライアントからホストの Deluge クライアントに接続するには deluged
サービスを 起動・有効化 してください。
ユーザーサービス
ユーザーサービスを使うことで 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 は、クライアント/サーバーモデルのため、シードボックスと呼ばれることが多いヘッドレスシステムで非常に役立ちます。ヘッドレスシステムで Deluge を設定するには、上記のようにデーモンを設定します。
ユーザーの作成
サーバーとのリモート操作を許可するには、$HOME/.config/deluge/auth
にユーザーを作成します。例えば:
$ echo "delugeuser:p422WoRd:10" >> $HOME/.config/deluge/auth
数字 10 は Admin レベルに相当します。 その他の値については、次の表を参照してください。
レベル名 | レベル値 |
---|---|
None | 0 |
Read Only | 1 |
Normal | 5 |
Admin | 10 |
リモートの許可
デフォルト設定ではリモート接続は許可されていません。$HOME/.config/deluge/core.conf
の "allow_remote" 設定を変更してください:
"allow_remote": true,
ファイアウォール
リモートアクセス用にポートを開いてください。以下の例ではデフォルトのデーモンポート (58846) を使います:
# iptables -A INPUT -p tcp --dport 58846 -j ACCEPT
ファイアウォールのルールに関する詳細は iptables を見て下さい。
NATルーター/ファイアウォールの背後にいるユーザーは、この動作が必要な場合、ネットワークの外部からデーモンにアクセスするためにポートを転送する必要があります。
接続
コンソールクライアントの場合:
connect <host>[:<port>] <user> <password>
GTK+ クライアントの場合: Edit > Connection Manager > Add。
ウェブクライアントの場合: Connection Manager > Add。
SSH トンネル
SSH トンネルを作成して、任意のクライアントで暗号化された接続を使用できます。これには、追加のループバックアドレスを追加する必要がありますが、これは起動時に自動化できます。この手順がないと、接続はローカルと見なされます。 SSHトンネルを確立するための実際のコマンドは、ユーザー入力が必要なため自動化できません。それを行うには、いくつかの方法があります。
/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>
ポート 58846 は、デリュージサーバーが実行されているポートに置き換え、 ssh host は、デリュージと SSH サーバーの両方をホストするサーバーに置き換える必要があります。
トラブルシューティング
No module named service_identity
deluged
や deluge-console
を実行したときに以下のようなメッセージが表示される場合:
:0: UserWarning: You do not have a working installation of the service_identity module: 'No module named service_identity'. Please install it from <https://pypi.python.org/pypi/service_identity> and make sure all of its dependencies are satisfied. Without the service_identity module and a recent enough pyOpenSSL to support it, Twisted can perform only rudimentary TLS client hostname verification. Many valid certificate/hostname mappings may be rejected.
python-twisted の任意の依存パッケージである python-service-identity がインストールされていないことが原因です。FS#43806 を見てください。
Web ui .torrent アップロードが機能しない
リバースプロキシの背後で Web UI を実行しているユーザーは、.torrent アップロードの埋め込みを許可する必要があります (X-Frame-Options ALLOW)
実行スクリプトが見つからないか、実行可能ではありません
Execute プラグインを使用する場合、deluge がスクリプトを実行しようとすると、次のエラーメッセージがログに記録されます。
[ERROR ][deluge_execute.core :145 ] Execute script not found or not executable
deluged
がシステムサービスとして実行されている場合、他のユーザーのホームディレクトリにアクセスできない可能性があることに注意してください。カスタムスクリプトを /usr/local/bin/
に配置することを検討してください。
スクリプト権限の問題は、sudo を使用して deluge
ユーザーとしてデバッグできます。
$ sudo -u deluge /path/to/script
Torrents list has completely disappeared after an unexpected shutdown
This usually means the state file has gotten corrupted. It has been an intermittent issue since last decade. There should be one backup state file along with a copy of all the previously-running torrents in your deluge profile folder (for systemd users this is usually /srv/deluge/.config/deluge/state
) that can be restored to remedy this issue. However, it can get overwritten pretty quickly, especially if you only notice your torrents list after several reboots. A suggested course of action to keep it from happening again is to automate a daily backup of the state file and the torrents.