Deluge

提供: ArchWiki
ナビゲーションに移動 検索に移動

関連記事

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 デーモンを実行するためのユーザーです。デーモンを起動する方法は複数存在します:

  1. Systemd のシステムサービス (deluge ユーザーとして実行)。
  2. Systemd のユーザーサービス (他のユーザーとして実行)。
  3. 直接実行 (他のユーザーとして実行)。
ヒント: セキュリティをできるかぎり高めるために、deluged は systemd のシステムサービス (deluged.service) で実行することを推奨します。deluge ユーザーはシェルにアクセスすることがなくホスト環境の他のグループに入っていません。非特権の deluge ユーザーとして実行する場合、Xorg やクライアントを起動しなくてもシステムサービスを起動できるというメリットもあります。

システムサービス

deluged.service サービスを起動/有効化してください。

ユーザーサービス

警告: 複数のユーザーでデーモンを実行する場合、ユーザーごとにデフォルトポート (58846) を変更する必要があります。

ユーザーサービスを使うことで 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/ になります)。

ダウンロード・アップロードに共有ディレクトリを使う

systemd の deluged.service を使用する場合、共有ディレクトリはシステムの他のユーザーがデータにアクセスできるように共有する必要があります。一般的な設定例:

  1. 共有ディレクトリの所有者と所有グループを deluge:deluge に変更。
  2. 共有ディレクトリのファイルのパーミッションと属性を最低でも 770 に設定。
  3. (ファイルにアクセスする必要がある) ユーザーを deluge グループに追加。

/mnt/torrent_data を使用する場合:

# chown -R deluge:deluge /mnt/torrent_data
# chmod 770 /mnt/torrent_data
# usermod -a -G deluge YOURUSER
ノート: usermod を使用してグループ所属を変更する場合、変更を有効にする前にログアウト/ログインが必要です。

ファイアウォール

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 も使用できますが、事前定義されたポートが必要なため、システムのローカルファイアウォールでは機能しません。

ノート: これを単一のポートに制限することができます。TCP と UDP の両方を必ず有効にしてください。

多くのデフォルト設定では、接続追跡 (conntrack) で iptables を使用して 無効な パケットをドロップするように設定すると、大量の正当なトレント トラフィック (特に DHT トラフィック) が 無効 としてドロップされる場合があります。これは通常、conntrack のメモリ制限、またはピア間のパケット間の長い時間によって発生します (最下部の [1] および [2] を参照)。この問題の症状には、特にトレント クライアントが 1 〜 2 日以上継続してアクティブな場合に、トレントがシードされないこと、DHT を有効にして、deluge/libtorrent が 48 時間以上継続して実行され、多くのトレントがアクティブな場合でも、常に低いオーバーヘッド トラフィック (ある報告では、入出力ともに 3KiB/s 未満) が発生することなどがあります。このため、リスニング ポートを ACCEPT に設定しても、最適なパフォーマンスを得るためには、すべてのトレント トラフィックの接続追跡を無効にする必要があるかもしれません (conntrack のメモリ問題など、無効なパケットをドロップする原因が、これらのポートへのトラフィック/ポートからのトラフィックを受け入れるルールに優先する場合があるためです。)

トレントの接続追跡を完全にオフにするには、Deluge の受信トラフィックと送信トラフィックの両方にポートを指定します。

ノート: libtorrent で着信接続を制限することはお勧めしません。これにより、異なるトレントであっても、同じクライアントへの複数の接続を維持する機能が制限されます。

次のコマンドを発行します(関連するポート範囲を置き換えた後)

# 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 はそれらが関連付けられている接続を認識しないため)およびそれらは潜在的にブロックされます。

警告: 1024:65535 のポート範囲は、すべての DNS クエリを壊します。

プラグイン

完全なプラグインのリストは 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 クライアントはいくつかの異なる方法で起動できます。

  1. Systemd system サービス (deluge のユーザーとして実行)
  2. Systemd user サービス (別のユーザーとして実行)
  3. 直接実行する (別のユーザーとして実行)
ノート:
  • Web インターフェイスのデフォルトのパスワードは deluge です
  • Web クライアントは、プラグインシステムなど、GTKUI と同じ機能の多くを提供します。
  • 中間者攻撃から保護するために、Web クライアントに HTTPS を使用することをお勧めします。
  • ユーザーは、SSL 証明書が信頼されていないというブラウザからの警告によって迎えられる場合があります。続行するには、ブラウザでこれに例外を追加してください。独自の証明書の作成については、OpenSSL ページを参照してください。
  • 複数のユーザーがデーモンを実行している場合は、ユーザーごとにデフォルトのポート(8112)を変更する必要があります。
ヒント: 最高レベルのセキュリティを確保するには、systemd システムサービス(deluge-web.service)を介して deluge-web を実行することをお勧めします。これは、deluge ユーザーがシェルアクセス(制限付きアカウント)を持っていないためです。ホストシステム上の他のグループ所属。非特権の deluge ユーザーとして実行することによるセキュリティ上の利点に加えて、システムサービスは、Xorg またはクライアントを起動しなくても起動時に実行できます。

実行後、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
ノート:
  • 作成されたユーザー/パスワードは、どのシステムユーザーとも一致する必要はありません。また、適切なセキュリティプラクティスを維持するために、not の必要があります。
  • このファイルのユーザー/パスワードは、ウェブクライアント設定のようにハッシュ化またはソルト化されていません。
  • ユーザー/パスワードは /srv/deluge/.config/deluge/auth にあるユーザー/パスワードと一致する必要があります。一致しない場合、認証は失敗します。

数字 10Admin レベルに相当します。 その他の値については、次の表を参照してください。

レベル名 レベル値
None 0
Read Only 1
Normal 5
Admin 10
ノート: Deluge 1.35では、これらの値は効果がありませんが、マルチユーザーオプションは開発中です。

リモートの許可

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

"allow_remote": true,
ノート:
  • $HOME/.config/deluge/core.conf は最初に設定を変更したときに自動的に作成されます。存在しない場合、deluge-console で値を設定できます: config --set 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

delugeddeluge-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

予期しないシャットダウンの後、Torrent リストが完全に消えました

これは通常、状態ファイルが破損していることを意味します。 これは、過去10年間、断続的な問題でした。以前に実行されていたすべてのトレントのコピーとともに1つのバックアップ状態ファイルが必要です。この問題を解決するために復元できる deluge プロファイルフォルダ(systemd ユーザーの場合、これは通常 /srv/deluge/.config/deluge/state です)ただし、特に数回の再起動後にトレントリストに気付いただけの場合は、すぐに上書きされる可能性があります。それが再び起こらないようにするための推奨される行動方針は、state ファイルと Torrent ファイルの毎日のバックアップを自動化することです。

コンソールを使用できません

Deluge を deluge ユーザで実行する場合、 deluge-console には deluge ユーザでアクセスしないと、 Python のさまざまな例外やバグに遭遇する可能性があります。

$ sudo -u deluge deluge-console

もしくは

$ sudo deluge-console -c /srv/deluge/.config/deluge

参照