不在時に自動的にBitTorrentでダウンロードするため、これまではDebianサーバーにログインしてscreen上のセッションでtransmission-cliを使っていたのだが、これだと同時に一つしかインスタンスを起動出来ないので困っていた。というわけで、Debianサーバー上でTransmissionをdaemonで起動し、ブラウザ経由でコントロール出来るようにすることにした。
まずはtransmission-daemonをインストールする。自動起動されてしまうが、設定を書き換えるためにすぐに停止させる。
sudo apt-get install transmission-daemon
sudo systemctl stop transmission-daemon
デフォルトのダウンロードフォルダでは/varを圧迫してイヤんなので、新しくダウンロードフォルダを余裕のある/homeに掘る。掘ったフォルダはtransmission-daemonのユーザー(debian-transmission)とグループ(debian-transmission)に所有させる。
sudo mkdir /home/torrent
sudo mkdir /home/torrent/downloads
sudo chown -R debian-transmission:debian-transmission /home/torrent
sudo chmod -R g+w /home/torrent
後でダウンロードファイルを自分でコピーしたり削除したり出来るように自分自身をtransmission-daemonの実行グループに追加しておく。
sudo /usr/sbin/usermod -aG debian-transmission <user>
ここまで準備できたら、設定ファイルをいじる。設定ファイルはセッション終了時に上書きされる仕組みなので、設定ファイルをいじる時は必ず先にセッションを終了させてからすること。
sudo vi /etc/transmission-daemon/settings.json
“download-dir”: “/home/torrent/downloads”,
“rpc-password”: “password”,
“rpc-whitelist”: “127.0.0.1,192.168.*.*”,
書き換える場所はこの三ヶ所で十分。パスワードは平文で書いておくとセッション起動時に自動的にハッシュされた文字列に置き換わる。LAN内からしかリモートコントロールへのアクセスを認めない方がセキュリティによいので、LAN内のネットワークアドレスだけをrpc-whitelistに追加しておく。
このままではファイヤーウォールにブロックされているので、リモートコントロールにアクセス出来るようにポートを開く。
sudo vi /etc/iptables/rules.v4
-A INPUT -p tcp -m tcp –dport 9091 -j ACCEPT
sudo vi /etc/iptables/rules.v6
-A INPUT -p tcp -m tcp –dport 9091 -j ACCEPT
適当な場所にリモートコントロールのポートである9091でTCP接続を受け入れる様に追加する。
ファイヤーウォール設定の更新とデーモンの起動をするのに手っ取り早いので、ここで再起動する。
後は、http://<server private IP address>:9091/にブラウザからアクセスする。認証を求められるので、username:transmission、パスワードは設定したもので認証すればTransmissionのリモートコントロールパネルにアクセス出来る。daemonで起動しているのでデフォルトでは最大5つまで同時にダウンロードされる。増やしてもいいけど、まあ、負荷を考えるとデフォルトでいいだろう。
このままではダウンロードされたファイルのパーミッションが755になって、グループ権限で削除できないので、settings.jsonでパーミッションが775になるように設定する。
“umask”: 2,