На выходных, разгребая закрома в чулане, выяснил, что из запасов старого железа можно собрать старенькую, но вполне рабочую машинку. В сумме выяснилось, что собрался P3-733 c 256Mb Ram, 200Gb HDD. Было решено использовать ее под торрент-качалку. Выбор ОС отпал сам собой - конечно FreeBSD. Не буду утомлять читателей описанием установки и пересборки ядра, благо это все подробно расписано в более ранних статьях. В качестве торрент-клиента решил поначалу использовать rtorrent+rutorrent, но перспектива прикручивать веб-сервер и отсутствие возможности скачивания выборочной части торрента побудила использовать Transmission, как обладающего данной возможностью и имеющий встроенный вебсервер. Обновляем порты и начинаем установку:
#cd /usr/ports/net-p2p/transmission
#make install clean
После завершения установки либо заводим отдельного пользователя
#adduser p2p
либо используем существующий аккаунт в системе. Я использовал уже существующего.
mkdir /home/synergix/transmission
mkdir /home/synergix/transmission/downloads
mkdir /home/synergix/transmission/incomplete
chown -R synergix:synergix /home/synergix/transmission
Далее добавляем Transmission в автозагрузку:
transmission_enable="YES"
# Путь до конфигурационных файлов
transmission_conf_dir="/home/synergix/transmission/"
# Папка для закачек
transmission_download_dir="/home/synergix/transmission/downloads"
# Пользователь от которого работает transmission.
transmission_user="synergix"
И создаем файл конфигурации:
touch /home/synergix/transmission/settings.json
chown synergix:synergix /home/synergix/transmission/settings.json
Маленькое уточнение - если Вы решите что-то править в конфиге - останавливайте демон transmission, иначе Ваши исправления не будут приняты.
Вот пример моего конфига:
{
"alt-speed-down": 50,
"alt-speed-enabled": false,
"alt-speed-time-begin": 540,
"alt-speed-time-day": 127,
"alt-speed-time-enabled": false,
"alt-speed-time-end": 1020,
"alt-speed-up": 50,
"bind-address-ipv4": "0.0.0.0",
"bind-address-ipv6": "::",
"blocklist-enabled": false,
"blocklist-url": "https://www.example.com/blocklist",
"cache-size-mb": 2,
"dht-enabled": false,
"download-dir": "/home/synergix/transmission/downloads",
"encryption": 1,
"idle-seeding-limit": 30,
"idle-seeding-limit-enabled": false,
"incomplete-dir": "/home/synergix/transmission/incomplete",
"incomplete-dir-enabled": false,
"lazy-bitfield-enabled": true,
"lpd-enabled": false,
"message-level": 2,
"open-file-limit": 32,
"peer-limit-global": 240,
"peer-limit-per-torrent": 60,
"peer-port": 51413,
"peer-port-random-high": 65535,
"peer-port-random-low": 49152,
"peer-port-random-on-start": false,
"peer-socket-tos": 0,
"pex-enabled": true,
"port-forwarding-enabled": true,
"preallocation": 1,
"ratio-limit": 2,
"ratio-limit-enabled": false,
"rename-partial-files": true,
"rpc-authentication-required": true,
"rpc-bind-address": "0.0.0.0",
"rpc-enabled": true,
"rpc-password": "changeme",
"rpc-port": 9091,
"rpc-username": "synergix",
"rpc-whitelist": "127.0.0.1",
"rpc-whitelist-enabled": false,
"script-torrent-done-enabled": false,
"script-torrent-done-filename": "",
"speed-limit-down": 100,
"speed-limit-down-enabled": false,
"speed-limit-up": 100,
"speed-limit-up-enabled": false,
"start-added-torrents": true,
"trash-original-torrent-files": false,
"umask": 18,
"upload-slots-per-torrent": 14
}
В принципе, он интуитивно понятен, но хотелось бы заострить внимание на:
#отключаем DHT-сеть
"dht-enabled": false,
#Включем авторизацию
"rpc-authentication-required": true,
#Указываем имя пользователя для входа в веб-интерфейс
"rpc-username": "synergix",
#Указываем пароль для входа в веб-интерфейс. Он заменится на хэш после старта демона.
"rpc-password": "changeme",
#Указываем порт, на котором будет веб-интерфейс.
"rpc-port": 9091,
После чего запускаем демона:
/usr/local/etc/rc.d/transmission start
И стучимся на http://server-ip:9091/
Если Вы все сделали правильно, то после прохождения авторизации Вы увидете такое вот симпатичную веб-морду управления клиентом.
Вот собственно и все ;)