В процессе изучения функционала нового для меня типа устройства, было принято решение реализации на моем сетевом хранилище функции автономной закачки и раздачи торрентов, ведь в моем сценарии использования хранилища львиную часть отнимает как раз трансляция видео высокого разрешения на соответствующий телевизор с поддержкой DLNA через встроенный в стандартную прошивку хранилища UPnP AV-сервер.
К стати, пару слов о прошивке. Прошивка в NAS-серверах представляет собой операционную систему, на подавляющем большинстве аппаратов роль которой выполняет Linux. Прошивка в данном аппарате находится во встроенной флеш-памяти устройства. Есть конечно же модели и на Windows Home Server, имеется даже информация об успешной установке на x86 аппараты операционных систем Microsoft Windows XP, и даже Windows 7! Однако речь не об этом. Речь о том, что ввиду реализации функционирования NAS-сервера на основе в общем-то широко распространенной, да и к тому же бесплатной операционной системе, снимаются практически все функциональные ограничения, реализованные в рамках стандартной прошивки устройства! И благодаря именно данному факту имеется возможность реализации функции автономной закачки и раздачи торрентов.
Итак, немного изучив данную тему, наткнулся на замечательный ресурс, где достаточно подробно описаны способы расширения функционала именно данных моделей NAS-серверов:
Дело в том, что данные девайсы работают на встраиваемой версии Linux. И так как данные аппараты работают на базе процессоров типа ARM, соответственно исполняемый код и программы, входящие в прошивку, скомпилированы для этих процессоров. Однаок прошивка имеет отличный бонус: пользователь имеет возможность скрипт с именем "fun_plug" при включении устройства и загрузке операционной системы. Причем абсолютно отсутствует какой-нибудь риск что-то поломать, так как уже указывалось выше, что операционная система находится во флеш-памяти, а данный скрипт-модификация - на Volume_1 дискового массива устройства. Причем при удалении данного скрипта с устройства, все модификации просто исчезают, как их и не было.
Так вот, данный скрипт - “fun_plug”, позволяет пользователю запускать дополнительные программы в NAS-сервере D-LINK. Немецкий программист “Fonz”, специально для этих устройств создал пакет программ и скриптов, назвав его "ffp" (Fonz fun_plug). То есть, для реализации и расширения дополнительного функционала устройства, нам как раз и необходимо установить данный пакет, чем мы сейчас и займемся.
Для того, чтобы установить пакет ffp, необходимо скачать по адресу:
http://www.inreto.de/dns323/fun-plug/0.5/
два файла: fun_plug (это текстовый файл, поэтому для его сохранения на диск возможно придется воспользоваться правой кнопкой мышки), и fun_plug.tgz (архив размером около 10 МБ). Далее, эти два файла необходимо поместить в корень папки Volume_1 вашего NAS-сервера. После этого, перезагрузите ваш NAS через веб-интерфейс, или путем зажатия кнопки POWER на 5 секунд. Когда устройство будет перезагружено, в случае успешной установки пакета, в корне папки Volume_1 появится директория - ffp.
Следует отметить, что в модели D-LINK DNS-320, была изменена точка монтирования жесткого диска с используемой в прошлых версиях /mnt/HD_a2, на /mnt/HD/HD_a2, вследствие чего, FFP не установится, а также возможны проблемы с установкой других пакетов. Поэтому, для установки FFP на DNS-320 необходимый подправленный файл fun_plug качаем отсюда:
http://www.shadowandy.net/wp/wp-content/uploads/fun_plug
Для решения же возможных проблем с запуском других пакетов, уже после после установки FFP необходимо скачать файл по адресу:
http://www.shadowandy.net/wp/wp-content/uploads/fun_plug.local
и поместить его в корень папки Volume_1, после чего нужно зайти в консоль, и выполнить команды (нажимаем ENTER после каждой каждой строчки):
cd /mnt/HD/HD_a2
mv fun_plug.local /ffp/etc
chmod a+x /ffp/etc/fun_plug.local
После этого нужно перезагрузить NAS.
Стандартная прошивка D-LINK не располагает консольным доступом к устройству, однако наш свежеустановленный пакет ffp предоставляет нам такую возможность. Пользователям, знакомым с Linux, думаю не требуется что-либо объяснять, однако для пользователей Windows, необходимо воспользоваться консольным клиентом. Я пользуюсь PuTTY:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Итак, запускаем PUTTY.EXE
в поле адреса вводим IP-адрес своего NAS-сервера в локальной сети, отмечаем чекбокс Telnet для порта 23, и жмем ENTER. Видим приглашение к работе:
#
Собственно сам пакет FFP у нас уже установлен, и по умолчанию он уже содержит в себе следующие пакеты:
· Lighttpd – легонький HTTP сервер для хостинга интернет страниц в NAS-сервере
· OpenSSH – открытая безопасная оболочка для шифрования сеансов связи по сети
· Mediatomb – UPnP медиа сервер
· NTP – для синхронизации времени NAS'a с точным временем по Интернет
· UNFS3 – реализация NFS-сервера, работающего как пользовательский процесс
· NFS-Utils – серверные и клиентские средства, необходимые для использования NFS-способностей ядра
· RSync – утилита для синхронизации и передачи файлов
Однако наша задача - установить торрент клиент. Таковым будет Transmission - кроссплатформенный, легкий и простой, свободный BitTorrent клиент. Для этого необходимо подготовиться, установив необходимые для его работы компоненты (необходим доступ NAS-сервера к Интернету). Набираем в окне PuTTY (можно скопировать):
cd /mnt/HD_a2
нажимаем ENTER, после чего набираем:
wget http://www.inreto.de/dns323/fun-plug/0.5/packages/uclibc-0.9.29-7.tgz
нажимаем ENTER. Ожидаем окончания загрузки данного компонента, после чего набираем:
funpkg -i uclibc-0.9.29-7.tgz
и жмем ENTER. Данной командой мы устанавливаем скачанный компонент. После его установки, необходимо перезагрузить NAS. Это можно выполнить командой
reboot
После загрузки NAS'a, опять заходим на него через Telnet посредством PuTTY вышеописанным образом и набираем:
cd /mnt/HD_a2
жмем ENTER. Теперь необходимо установить второй необходимый компонент. Выполняем команду:
wget http://kylek.is-a-geek.org:31337/files/curl-7.18.1.tgz
нажимаем ENTER, после чего устанавливаем пакет командой:
funpkg -i curl-7.18.1.tgz
и нажимаем ENTER.
Теперь приступим непосредственно к установке самого торрент клиента Transmission. Для начала узнаем последнюю его версию в первом сообщении форума по адресу:
http://forum.dsmg600.info/viewtopic.php?id=2719&p=1
На момент написания статьи таковой являлась v.2.22. Копируем адрес ссылки скачивания и набираем:
wget http://kylek.is-a-geek.org:31337/files/Transmission-2.22-1.tgz
нажимаем ENTER и ждем пока скачается. После этого устанавливаем его:
funpkg -i Transmission-2.22-1.tgz
И нажимаем ENTER. Собственно после этого Transmission у нас уже установлен. Осталось только добавить его в автозапуск, чтобы не запускать его вручную после каждой перезагрузки NAS-сервера. Для этого выполняем команды:
chmod a+x /ffp/start/transmission.sh
жмем ENTER, после чего запускаем Transmission:
sh /ffp/start/transmission.sh start
Теперь осталось дело за малым, разрешить доступ к веб-интерфейсу Transmission для всех машин, как локальных так и из внешней сети. Для этого встроенным текстовым редактором vi необходимо подправить файл конфигурации Transmission. Но сначала нужно остановить программу командой:
sh /ffp/start/transmission.sh stop
и нажимаем ENTER.
Затем запускаем vi и редактируем файл конфигурации settings.json:
vi /mnt/HD_a2/.transmission-daemon/settings.json
жмем ENTER, и на экране должно появиться содержание файла конфигурации. Мои настройки 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": true,
"blocklist-url": "http://www.bluetack.co.uk/config/level1.gz",
"cache-size-mb": 8,
"dht-enabled": true,
"download-dir": "/mnt/HD_a2",
"encryption": 0,
"idle-seeding-limit": 30,
"idle-seeding-limit-enabled": false,
"incomplete-dir": "/mnt/HD_a2",
"incomplete-dir-enabled": false,
"lazy-bitfield-enabled": true,
"lpd-enabled": true,
"message-level": 1,
"open-file-limit": 16,
"peer-congestion-algorithm": "",
"peer-limit-global": 100,
"peer-limit-per-torrent": 20,
"peer-port": 51413,
"peer-port-random-high": 65535,
"peer-port-random-low": 49152,
"peer-port-random-on-start": false,
"peer-socket-tos": "default",
"pex-enabled": true,
"port-forwarding-enabled": false,
"preallocation": 2,
"prefetch-enabled": 1,
"proxy": "",
"proxy-auth-enabled": false,
"proxy-auth-password": "",
"proxy-auth-username": "",
"proxy-enabled": false,
"proxy-port": 80,
"proxy-type": 0,
"ratio-limit": 20,
"ratio-limit-enabled": false,
"rename-partial-files": true,
"rpc-authentication-required": true,
"rpc-bind-address": "0.0.0.0",
"rpc-enabled": true,
"rpc-password": "password",
"rpc-port": 9091,
"rpc-username": "login",
"rpc-whitelist": "127.0.0.1",
"rpc-whitelist-enabled": false,
"script-torrent-done-enabled": false,
"script-torrent-done-filename": "",
"speed-limit-down": 0,
"speed-limit-down-enabled": false,
"speed-limit-up": 0,
"speed-limit-up-enabled": false,
"start-added-torrents": true,
"trash-original-torrent-files": false,
"umask": 0,
"upload-slots-per-torrent": 20,
"watch-dir": "",
"watch-dir-enabled": false
}
Для перехода в нем можно воспользоваться кнопками курсора на клавиатуре. Теперь же, для разрешения редактирования данного файла, необходимо нажать клавишу «I». Понять, что редактирование разрешено, можно посмотрев на левый нижний угол окна, где ранее отображавшийся символ «-» сменится на «I». Теперь собственно приступим к редактированию файла конфигурации. На данный момент нас интересуют следующие строки:
"rpc-whitelist-enabled": false (должно стоять false для разрешения доступа с любого компьютера)
"rpc-password": "password" (вместо password набираем свой пароль)
"rpc-username": "login" (вместо login набираем свое имя пользователя).
После редактирования данных пунктов, нажимаем ESCAPE, выключая тем самым редактирование файла, индикатором чего является опять-таки смена символа «I» в левом нижнем углу экрана на «-». После этого, для сохранения настроек одновременно нажимаем «SHIFT и : (двоеточие)» - символ в углу экрана опять-таки сменится на « : ». Далее набираем wq и жмем ENTER. Таким образом мы сохранили изменения настроек. Уже после этого можно запускать Transmission командой:
sh /ffp/start/transmission.sh start
Ну вот собственно и все, Transmission установлен. Для его использования у нас есть два варианта: собственно веб-интерфейс, который расположен на порту 9091 по IP_АДРЕСУ_ХРАНИЛИЩА, или же с помощью удаленного пользовательского интерфейса, например Transmission Remote GUI:
http://code.google.com/p/transmisson-remote-gui
В первом случае, для доступа к Transmission, в адресной строке своего браузера надо набрать к примеру: 192.168.1.100:9091, где мы сначала увидим окно входа с требованием ввести логин и пароль, ранее прописанные нами в файле конфигурации settings.json
и в случае правильности, увидим непосредственно сам веб-интерфейс Transmission
Во втором случае, необходимо на компьютер установить удаленный пользователький интерфейс, и ввести в нем соответствующие настройки. Конечно-же второй способ значительно удобнее, так как интерфейс в нем очень похож на популярный Windows клиент uTorrent.
Таким образом, мы повесили на наш, не побоюсь этого выражения - NAS-сервер, задачу по круглосуточной раздаче и закачке торрентов. По крайней мере у меня, данный девайс работал круглосуточно и бесперебойно :)
Источник: NAS-TWEAKER