Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Установка Ретрекера на DNS-323/343
Re-Tracker | Система локальных ретрекеров | Ретрекер > РеТрекер > Установка РеТрекера
jecksom152
Привет всем!

Опишу процесс установки PseudoTracker'a на NAS - Dlink DNS-323/343 ( http://wiki.dns323.info ). В тексте я буду учитывать, что не все пользователи имеющие у себя DNS-323 и желающие поставить у себя ретрекер владеют английским языком и основами linux.
Не смотря на то, что все элементы довольно хорошо документированы, я попробую суммировать ссылки и методы установки ретрекера в одном тексте, вдруг кому пригодится ? wink.gif

В ПРОЦЕССЕ УСТАНОВКИ ИЗМЕНЯЮТСЯ ЗАВОДСКИЕ ПАРАМЕТРЫ УСТРОЙСТВА, ЕСЛИ ВЫ ДЕЛАЕТЕ ИЗМЕНЕНИЯ ПО ДАННОЙ ИНСТРУКЦИИ, ТО ВЫ ДЕЛАЕТЕ ЭТО НА СВОЙ СТРАХ И РИСК! УПРЕКИ И НАЕЗДЫ - НЕ ПРИНИМАЮТСЯ !!!

Ну вот теперь, испугав самых пугливых начнем:

Мною производилась установка на прошивке 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;

(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. Проверка dirol.gif

Ваш Ретрекер для анонса теперь доступен через 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.
Shift
отличный мануал
jecksom152
Я старался smile.gif
Yodj
Цитата(jecksom152 @ 23.2.2009, 18:06) *
Я старался smile.gif

Я извиняюсь)))) Но мне кажеться что такие как ты немного сумасшедшие, в хорошем смысле слова)))) Столько сделать, и тем более столько написать.... clapping.gif Молодца!!!
jecksom152
Неа, просто у себя установил, промучился 7 часов пока пытался все состыковать и стало жалко информацию на "помойку" выбрасывать. wink.gif Зто теперь Ретрекер работает 24/7/365 и компьютеры включать не надо smile.gif
Yodj
Цитата(jecksom152 @ 23.2.2009, 20:57) *
Неа, просто у себя установил, промучился 7 часов пока пытался все состыковать и стало жалко информацию на "помойку" выбрасывать. wink.gif Зто теперь Ретрекер работает 24/7/365 и компьютеры включать не надо smile.gif

А ты не в курсе, на мой Линксис WRT54GL такое можно?
jecksom152
Если на прямую использовать инструкцию и модули, точно не пройдет.

Честно говоря я WRT54GL в руках сам не держал, но учитывая, что я прочитал бегло пробежавшись по поиску в интернете, народу толи уже удалось установить на WRT54GL - SQL сервер, PHP и web server, толи они близки к этой цели. А это уже путь к такому-же решению вопроса который выбрал и я.

Но в 100% случаях ретрекер можно сделать имея в своём распоряжении только Perl. Правда данные придется хранить в файлах и процессор у WRT54GL не очень шустрый, но, как резервный ретрекер в сегменте вполне может пригодится.

В общем на прямую нельзя sad.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2017 IPS, Inc.