воскресенье, 3 октября 2010 г.

Подводим точку под D-Link DNS-313

После установки Debian на свой DNS-313 я успокоился - практически нет задачи, которую не сможет выполнить полноценная операционная система, пусть даже и на столь ущербном девайсе. Но многие мои знакомые, которые довольно слабо представляют себе работу в unix-like-os, пользуются обычной, родной и привычной им D-Link'овской прошивкой, тем не менее желая расширить ее функционал. 
Самой распространенной просьбой обычно бывает "сделать так, чтобы торренты качались". Ну что ж, реализуем эту возможность, тем более что это не так и сложно - все уже "изобретено до нас" (с)

Прежде всего обновим прошивку нашего длинка - на сегодняшний день на фтп лежит версия 1.04, ее и ставим. После установки заходим на наш выданный системой сетевой диск и копируем туда два файла - fun_plug.tgz и fun_plug.
Теперь перезагрузим устройство (используя веб-интерфейс администратора). После перезагрузки устройство должно отвечать на обращение через Telnet:

telnet <сетевое_имя_или_IP_адрес_устройства>

Мы должны увидеть такое приглашение:

/#

Девайс послушно пустил нас к себе, не запросив ни имени, ни пароля. Это непорядок, который необходимо немедленно устранить. В окне telnet’а даем последовательно команды:

pwconv
passwd (это команда смены пароля, потребуется дважды ввести пароль)
usermod -s /ffp/bin/sh root (смена предопределенной среды; текущая среда – ash)

Теперь можно проверить вход:

login (укажите имя root, а пароль – тот, который вы только что установили)
store-passwd.sh (сохранение пароля в энергонезависимую память)

Теперь можно перейти ко второму этапу – обеспечение автоматического запуска службы SSH.
Продолжая находиться в окне Telnet’а, выполняем команду:

chmod a+x /ffp/start/sshd.sh (установка разрешения на запуск скрипта службы SSH)
sh /ffp/start/sshd.sh start (собственно, запуск SSH)

После этого сеанс работы через Telnet можно прекратить:

exit

Теперь можно попробовать обратиться к DNS-313 по протоколу SSH (для ПК с Windows рекомендуется клиент PuTTY). Например, так:

putty root@mynasdevice -pw mysecretpassword

Убедившись, что служба SSH работает, можно (в интерфейсе PuTTY) остановить службу telnet:

sh /ffp/start/telnetd.sh stop

…а также запретить ее автоматический запуск после перезагрузки:

chmod a-x /ffp/start/telnetd.sh

Третьим этапом мы и установим Bittorrent-клиента Transmission.
К сожалению, в оригинальном виде у DNS-313 отсутствует Bittorrent-клиент. Но этот недостаток вполне поправим – достаточно установить альтернативный клиент – Transmission – используемый штатно на многих популярных Linux-системах.
Итак, поехали.
В сеансе работы с SSH, переходим в какой-нибудь каталог диска для хранения данных (например, в корень)

cd /mnt/HD_a2

На данный момент актуальна версия Transmission 2.04, но вы всегда можете зайти на данную страницу и загрузить последнюю версию http://forum.dsmg600.info
Выполняем последовательно команды, которые обеспечат загрузку на устройство всех пакетов, необходимых для установки, а также их последующую установку:

wget http://kylek.is-a-geek.org:31337/files/Transmission-2.04-1.tgz
wget http://kylek.is-a-geek.org:31337/files/curl-7.18.1.tgz
funpkg -i curl-7.18.1.tgz
funpkg -i Transmission-2.04-1.tgz

Создаем папки для будущей загрузки файлов, а также устанавливаем на эти папки владельца и разрешения:

cd /mnt/HD_a2
mkdir torrent
chown -R nobody:501 torrent/
chmod 755 -R torrent/

(Замечание: если раздел /mnt/HD_a2 имеет файловую систему NTFS (а именно так и есть у DNS-313 «от завода»), то команды смены владельца и назначения разрешений выдадут ошибку. Не обращайте на нее внимания.)
Делаем первый пробный запуск Transmission:

/ffp/start/transmission.sh start

Теперь можно попытаться обратиться к Transmission через веб-браузер:

http://<адрес_или имя устройства>:9091/transmission/web

Как правило, вы должны увидеть следующее сообщение об ошибке:

401: Unauthorized
Unauthorized IP Address.
Either disable the IP address whitelist or add your address to it.
If you’re editing settings.json, see the ‘rpc-whitelist’ and ‘rpc-whitelist-enabled’ entries.
If you’re still using ACLs, use a whitelist instead. See the transmission-daemon manpage for details.

Остановите Transmission:

/ffp/start/transmission.sh stop

Чтобы создать конфигурационный файл, необходимо один раз запустить Transmission "в ручном режиме". Это делается следующей командой:

transmission-daemon -f -g /mnt/HD_a2/.transmission-daemon -t -u <имя> -v <пароль> -a 127.0.0.1, 192.168.*.*

Вместо <имя> и <пароль> пропишите выбранные вами имя и пароль. Вместо 192.168.*.* можете поставить IP адрес своего компьютера или только первых чисел вашего IP и .*.* После такого запуска вы увидите на экране текст. Если он не содержит сообщений об ошибках, прервите работу Transmission, нажав клавиши Ctrl+C.
А теперь дайте команду:

transmission-daemon -d

В ответ вы должны увидеть что-то вроде этого:

{
“blocklist-enabled”: 0,
“download-dir”: “\/mnt\/HD_a2\/bittorrent\/”,
“download-limit”: 100,
“download-limit-enabled”: 0,
“encryption”: 1,
“lazy-bitfield-enabled”: 1,
“message-level”: 2,
“open-file-limit”: 32,
“peer-limit-global”: 240,
“peer-limit-per-torrent”: 60,
“peer-port”: 51413,
“peer-port-random-enabled”: 0,
“peer-port-random-high”: 65535,
“peer-port-random-low”: 1024,
“peer-socket-tos”: 0,
“pex-enabled”: 1,
“port-forwarding-enabled”: 1,
“preallocation”: 1,
“proxy”: “”,
“proxy-auth-enabled”: 0,
“proxy-auth-password”: “”,
“proxy-auth-username”: “”,
“proxy-enabled”: 0,
“proxy-port”: 80,
“proxy-type”: 0,
“rpc-authentication-required”: 1,
“rpc-enabled”: 1,
“rpc-password”: “superpassword”,
“rpc-port”: 9091,
“rpc-username”: “superuser”,
“rpc-whitelist”: “*.*.*.*”,
“rpc-whitelist-enabled”: 1,
“upload-limit”: 100,
“upload-limit-enabled”: 0,
“upload-slots-per-torrent”: 14
}

Настройки содержатся в файле /mnt/HD_a2/.transmission-daemon/settings.json, который можно (и нужно) отредактировать.
Обратите внимание, что редактирование этого файла необходимо выполнять только при остановленном демоне transmission, ибо при остановке он переписывает этот файл настройками, выданными при запуске!
Запуск Transmission осуществляется командой:

sh /ffp/start/transmission.sh start

а останов – командой:

sh /ffp/start/transmission.sh stop

Для автоматического запуска Transmission после включения или перезагрузки DNS-313 поменяйте атрибуты файла запуска:

chmod a+x /ffp/start/transmission.sh

Некоторые настройки вы можете изменять, нажав на пиктограмме с колесиком в веб-интерфейсе Transmission, сразу поставьте ограничение по максимальной скорости. В маем случаи DNS-313 вызывал сбой в сети и наглухо вешал всю сетку. Только после того как я прописал четкие данные с предельной скоростью закачки сбои прекратились. :

http://<адрес_или имя>:9091/transmission/web

Замечание: если после запуска Transmission выдаются сообщения типа «Access denied» или «Invalid folder», выполните команды:

chown -R nobody /mnt/HD_a2/torrent
chown -R nobody /mnt/HD_a2/.transmission-daemon

В общем, на этом все. Дополнительно на локальном компьютере-клиенте можно установить более удобную, чем web, оболочку для transmission, наподобие Transmisson-remote-gui или Transmission Remote Dotnet.

Выглядеть будет это примерно так:
























или



Комментариев нет: