Опишу процесс установки PseudoTracker'a на NAS - Dlink DNS-323/343 ( http://wiki.dns323.info ). В тексте я буду учитывать, что не все пользователи имеющие у себя DNS-323 и желающие поставить у себя ретрекер владеют английским языком и основами linux.
Не смотря на то, что все элементы довольно хорошо документированы, я попробую суммировать ссылки и методы установки ретрекера в одном тексте, вдруг кому пригодится ?
В ПРОЦЕССЕ УСТАНОВКИ ИЗМЕНЯЮТСЯ ЗАВОДСКИЕ ПАРАМЕТРЫ УСТРОЙСТВА, ЕСЛИ ВЫ ДЕЛАЕТЕ ИЗМЕНЕНИЯ ПО ДАННОЙ ИНСТРУКЦИИ, ТО ВЫ ДЕЛАЕТЕ ЭТО НА СВОЙ СТРАХ И РИСК! УПРЕКИ И НАЕЗДЫ - НЕ ПРИНИМАЮТСЯ !!!
Ну вот теперь, испугав самых пугливых начнем:
Мною производилась установка на прошивке 1.06 с использованием: ffp (0.5) , Lighttpd (1.4.20), Mysql (14.12), PHP (2.2.0), PseudoTracker (патченый для совместимости с TorrentPatcher).
Допущения:
Вы устанавливаете ПсевдоТрекер на первый винчестер или рэйд массив, смонтированный, как /mnt/HD_a2 . В тексте упоминание 'DNS-323'='NAS '.
Если некоторые пункты у вас уже сделаны переходите дальше.
1. Первое, что мы должны сделать, это установить fonz fun_plug (ffp), чтобы "превратить" наш NAS в ещё одну тачку - тихую, но малопроизводительную, работающую под обрезанным вариантом Linux'а в ARM архитектуре (Linux 2.6.12.6-arm1). А по сути получить доступ по telnet'у (можно и SSH но это другая песня).
Описание процесса: http://wiki.dns323.info/howto:ffp и http://nas-tweaks.net/CH3SNAS:Tutorials/fun_plug
По сути необходимо скачать два файла:
http://www.inreto.de/dns323/fun-plug/0.5/fun_plug
http://www.inreto.de/dns323/fun-plug/0.5/fun_plug.tgz
и записать их в сетевой ресурс Volume_1 на вашем DNS-323 (например: \\192.168.0.4\Volume_1). Распаковывать fun_plug.tgz - не нужно! После этого необходимо перезагрузить DNS-323. После перезагрузки (более долгой чем обычно, поскольку происходит распаковка и установка необходимых компонентов) - telnetd установлен, вы можете воспользоваться shell'ом. Telnet <IP DNS-323> . Я все-же рекомендую использовать бесплатную программку putty.
2. Установка Web Server'a - Lighttpd
Описание процесса: http://wiki.dns323.info/howto:ffp#lighttpd_web_server
Скачиваем, устанавливаем и создаем директории: /mnt/HD_a2/www/pages - корень для страниц и /mnt/HD_a2/www/logs для журналов, устанавливаем автозапуск Web Server'a при перезагрузке:
cd /mnt/HD_a2
wget http://www.inreto.de/dns323/fun-plug/0.5/p...pd-1.4.20-1.tgz
funpkg -i lighttpd-1.4.20-1.tgz
mkdir -p www/logs www/pages
rm lighttpd-1.4.20-1.tgz
chmod a+x /ffp/start/lighttpd.sh
Об аспектах безопасности можно почитать здесь - http://forum.dsmg600.info/t793-Request-sec...o-lighttpd.html
3. Установка PHP:
Описание процесса: http://wiki.dns323.info/howto:ffp#php
Скачиваем, устанавливаем и копируем конфигурацию web сервера для php:
cd /mnt/HD_a2
wget http://www.inreto.de/dns323/fun-plug/0.5/p...php-5.2.6-3.tgz
funpkg -i php-5.2.6-3.tgz
cd /ffp/etc
cp examples/lighttpd.conf-with-php lighttpd.conf
rm php-5.2.6-3.tgz
4. Установка MySQL сервера:
Описание процесса: http://nas-tweaks.net/CH3SNAS:Tutorials/Mysql
Скачиваем, устанавливаем и устанавливаем автозапуск MySQL сервера при перезагрузке:
cd /mnt/HD_a2
wget http://www.inreto.de/dns323/fun-plug/0.5/p...ql-5.0.67-2.tgz
funpkg -i mysql-5.0.67-2.tgz
rm mysql-5.0.67-2.tgz
chmod a+x /ffp/start/mysqld.sh
Копируем облегченную конфигурацию и создаём директории:
cp /ffp/etc/examples/mysql/my-small.cnf /ffp/etc/my.cnf
mkdir /mnt/HD_a2/www/mysqldbs/
ln -s /mnt/HD_a2/www/mysqldbs/ /srv
Создаем внутренние базы MySQL:
cd /srv/
/ffp/bin/mysql_install_db
Появятся 4-е строки предупреждений [Warning] - 'max_join_size', 'max_join_size', 'myisam_max_extra_sort_file_size', 'thread_stack' - просто игнорируем их.
Запускаем Mysql:
sh /ffp/start/mysqld.sh start
И настраиваем параметры безопасности:
/ffp/bin/mysql_secure_installation
Отвечаем - Установить пароль для пользователя root - да, пишем пароль два раза, убираем анонимных пользователей, убираем возможность удаленного входа для польщователя root, стираем тестовые базы, и перезагружаем таблицы:
---
Set root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
All done!
---
Тестируем MySQL:
mysql -p
Выпадает приглашение MySQL>
USE mysql;
select the Host, User and Passwort from the Database:
SELECT Host, User, Password FROM user;
exit;
должно появиться, что-то типа такого:
+-----------+------+-------------------------------------------+
| Host | User | Password |
+-----------+------+-------------------------------------------+
| localhost | root | *8D2414F01991E3B0B86E14D2469EACA0B6D78B99 |
+-----------+------+-------------------------------------------+
5. Редакторы :
Для редактирования можно воспользоваться разными текстовыми редакторами:
Все, что нам понадобится от текстовых редакторов, в упрощенном варианте, это возможность добавить симвомлы/строки, сохранение или не сохранение изменений в файле.
а) Встроенный редактор 'vi', используется vi <путь/имя файла> , 'a' - начать редактирование, escape - закончить, ':wq' - сохранить, ':q!' - не сохранять (например при ошибке ввода).
б) Редактор 'joe' более удобный, его можно установить так:
cd /mnt/HD_a2
wget http://www.inreto.de/dns323/fun-plug/0.5/p...s/joe-3.5-1.tgz
funpkg -i joe-3.5-1.tgz
rm joe-3.5-1.tgz
используется - joe -nobackups <путь/имя файла> , опция nobackups говорит о отказе от использования резервных файлов. Редактирование начинается сразу-же, сохранить - Cntrl-KX, не сохранять Cntrl-С .
в) Можно также использовать редакторы под Windows, который может работать с переносами unix систем, например NotePad++ (она бесплатная) - http://notepad-plus.sourceforge.net/ru/site.htm, но не в коем случае не Блокнот (notepad) или Wordpad.
6. Настройка конфигураций (используя joe):
joe -nobackups /ffp/etc/php.ini
Ищем строки:
extension=calendar.so
;extension=ctype.so
;extension=ftp.so
;extension=gd.so
;extension=mbstring.so
Изменяем или добавляем:
extension=mysql.so
Ищем строку:
extension_dir =
Изменяем на :
extension_dir = "/ffp/lib/php/extensions/no-debug-non-zts-20060613/"
Сохраняем (Cntrl+KX)
Запуск MySQL с привилегиями отличными от root (для увеличения уровня безопасности)
sh /ffp/start/mysqld.sh stop
useradd -U -s /bin/false mysql
store-passwd.sh
cd /srv
chown -R mysql:mysql mysql
cd /ffp/var/run/
chown mysql:mysql mysql
joe -nobackups /ffp/start/mysqld.sh
Ищем стороку:
mysqld_flags="--user=root --skip-networking"
Должно получиться:
mysqld_flags=""
Сохраняем файл.
Добавляем в конец файла символическую ссылку для правильной работы MySQL после перезагрузки:
joe -nobackups /ffp/etc/fun_plug.init
В конец файла добавить:
# create custom link to the server-folder
ln -s /mnt/HD_a2/www/mysqldbs/ /srv
Сохраняем файл.
7. Настройка ПсевдоТрекера:
Скачиваем - http://pseudotracker.spb.ru/files/pseudotracker-1.1.2.zip и распаковываем архив в папку: \\<ВАШ NAS>\Volume_1\www\pages
cd /mnt/HD_a2/www/pages
wget http://pseudotracker.spb.ru/files/pseudotracker-1.1.2.zip
unzip pseudotracker-1.1.2.zip
cp -R pseudotracker-1.1.2/* .
rm -rf pseudotracker-1.1.2
Проверим:
ls
должно появиться:
>announce.php pseudotracker readme.txt
Создаем пользователя для Ретрекера, таким образом.
mysql -uroot -p
(MySQL>)
GRANT ALL PRIVILEGES ON *.* TO 'YOURUSERNAME'@'localhost' IDENTIFIED BY 'YOURPASSWORD' WITH GRANT OPTION;
Где YOURUSERNAME надо заменить на пользователя под которым у нас с localhost Ретракер будет обращаться к базе. Например: tracker_user
YOURPASSWORD на ваш пароль.
Создаем таблицу для Ретрекера:
(MySQL>)
CREATE TABLE tracker;
(MySQL>)
USE tracker;
(MySQL>)
CODE
CREATE TABLE `tracker` (
`info_hash` char(40) collate utf8_bin NOT NULL,
`ip` char(8 ) collate utf8_bin NOT NULL,
`port` int(11) NOT NULL,
`update_time` int(11) NOT NULL,
`descr` varchar(255) collate utf8_bin default NULL,
`tracker` varchar(255) collate utf8_bin default NULL,
`ip_real` varchar(32) collate utf8_bin default NULL,
`publisherurl` varchar(255) collate utf8_bin default NULL,
`pleft` bigint(16) default NULL,
`downloaded` bigint(16) NOT NULL,
`length` int(11) NOT NULL,
`pisp` varchar(32) collate utf8_bin default NULL,
`psize` bigint(16) NOT NULL,
PRIMARY KEY (`info_hash`,`ip`,`port`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
`info_hash` char(40) collate utf8_bin NOT NULL,
`ip` char(8 ) collate utf8_bin NOT NULL,
`port` int(11) NOT NULL,
`update_time` int(11) NOT NULL,
`descr` varchar(255) collate utf8_bin default NULL,
`tracker` varchar(255) collate utf8_bin default NULL,
`ip_real` varchar(32) collate utf8_bin default NULL,
`publisherurl` varchar(255) collate utf8_bin default NULL,
`pleft` bigint(16) default NULL,
`downloaded` bigint(16) NOT NULL,
`length` int(11) NOT NULL,
`pisp` varchar(32) collate utf8_bin default NULL,
`psize` bigint(16) NOT NULL,
PRIMARY KEY (`info_hash`,`ip`,`port`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
(MySQL>)
COMMIT;
(MySQL>)
exit
Поля `pisp` и `psize`введеный для совместимости с Торрент Патчером.
Редактируем /mnt/HD_a2/www/pages/announce.php из виндом notepad++: \\<ВАШ NAS>\www\pages\announce.php , должно получиться так:
$DBHost="localhost";
$DBUser="tracker_user";
$DBPass="<ВАШ ПАРОЛЬ>";
$DBName="tracker";
^^^^
Для параметра DBUser и DBPass надо использовать реальные значения которые вы создали в пункте "Создаем пользователя для Ретрекера"
Дальше ищем:
$input_vars_str = array(
'info_hash',
'peer_id',
'event',
'descr',
'mt',
'pu',
);
// Numeric
$input_vars_num = array(
'port',
'uploaded',
'downloaded',
'left',
'numwant',
'compact',
'l',
);
Меняем на:
$input_vars_str = array(
'info_hash',
'peer_id',
'event',
'descr',
'mt',
'pu',
'name',
'comment',
'isp',
);
// Numeric
$input_vars_num = array(
'port',
'uploaded',
'downloaded',
'left',
'numwant',
'compact',
'l',
'size',
);
Ищем:
$descr = mysql_real_escape_string($descr);
$pu = mysql_real_escape_string($pu);
Меняем на:
$descr = mysql_real_escape_string($name);
$publisherurl = mysql_real_escape_string($comment);
$main_tracker = mysql_real_escape_string($main_tracker);
$isp = mysql_real_escape_string($isp);
$pu = mysql_real_escape_string($pu);
Ищем:
mysql_query("INSERT INTO tracker (info_hash, ip, port, update_time, descr, tracker, ip_real, publisherurl, pleft, downloaded, length)
VALUES ('$info_hash_sql', '$ip_sql', $port, ". time() .", '$descr', '$main_tracker', '$ip', '$pu', '$left', '$downloaded', '$l')")
Меняем на:
mysql_query("INSERT INTO tracker (info_hash, ip, port, update_time, descr, tracker, ip_real, psize, pisp, publisherurl, pleft, downloaded, length)
VALUES ('$info_hash_sql', '$ip_sql', $port, ". time() .", '$descr', '$main_tracker', '$ip', '$size', '$isp', '$pu', '$left', '$downloaded', '$l')")
Сохраняем файл.
Редактируем /mnt/HD_a2/www/pages/pseudotracker/stats.php и /mnt/HD_a2/www/pages/pseudotracker/stats_mini.php, из виндов notepad++: \\<ВАШ NAS>\www\pages\pseudotracker\stats.php и \\<ВАШ NAS>\www\pages\pseudotracker\stats_mini.php, должно получиться так:
$DBHost="localhost";
$DBUser="tracker_user";
$DBPass="<ВАШ ПАРОЛЬ>";
$DBName="tracker";
^^^^
Для параметра DBUser и DBPass надо использовать реальные значения которые вы создали в пункте "Создаем пользователя для Ретрекера"
Изменяем права на папку web документов:
chmod -R 755 /mnt/HD_a2/www/pages
Редактируем конфигурацию web сервера:
joe -nobackups /ffp/etc/lighttpd.conf
Ищим:
server.port =
Меняем на:
server.port = 2710
Запускаем web сервер:
sh /ffp/start/lighttpd.sh start
8. Проверка
Ваш Ретрекер для анонса теперь доступен через http://192.168.x.x.x:2710/announce.php , статистика - http://192.168.x.x/pseudotracker/stats.php и мини статистика http://192.168.x.x/pseudotracker/stats_mini.php .
Таким образом для проверки вам необходимо создать торрент файл с адресом аннонса на ваш адрес - http://192.168.x.x/announce.php и открыть его в любом торрент клиенте. Если вы все сделали правильно, то в статусе торрента появится надпись - работает (Working).
Для использования Ретрекра в Локальных Провайдерских сетях все готово. Не забудьте сделать проброс портов вашего маршрутизатора на 2710 порт извне и попросите включить вас в списов ТоррентПатчера для своего провайдера.
9. Теперь вы сможете на своем DNS-323 так-же помогать людям раздавать с локальной скоростью торренты, при этом не включая компьютер! А так-же пропустить ваши раздаваемые торренты на DNS-323 через ваш Ретрекер!
10) Возможно есть опечатки и прошу прощения за столь длинный текст. Удачи! Jecksom.