Перейти к содержимому
Калькуляторы

#358. Торренты. Приручение.

В конфиге mman.xml отключены все фильтры, кроме external и caching, в external:

        <external>
                <enabled>true</enabled>
                <item>
                        <enabled>true</enabled>
                        <comment>torrent</comment>
                        <mime>application\/x-bittorrent</mime>
                        <exec>/home/torrents/mypatcher.pl</exec>
                        <type>file</type>
                </item>
        </external>

Можно ПЛЗ показать mman.xml Я невьезжаю что в нем нужно отключить, а что нет

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно ПЛЗ показать mman.xml Я невьезжаю что в нем нужно отключить, а что нет
Пожалуйста: http://www.pastie.org/725544

У него, кстати, есть очень удобный веб-интерфейс администрирования, рекомендую.

 

P.S. В процессе работы выяснился один тонкий момент: некоторые трекеры отдают торренты с флагом "private:1". Такие торренты, вообще говоря, должны обрабатываться клиентскими программами в виде отключения всех механизмов получения пиров (DHT,PEX и т.п.) и оставления лишь серверного трекера. Мы же вставляем в такие торренты наш ретрекер и поскольку вроде как закрытые трекеры проверяют info_hash, такие торренты не участвуют в рейтинге пользователя. Но это, естественно, надо проверять.

 

P.P.S Обновил патчер до 1.4. Код неидеален, но оно работает. :) Изменения: в announce_list теперь можно вставлять несколько ретрекеров, добавлен код для регистрации торрента на ретрекере от re-tracker.ru (как локальном, так и на самом re-tracker.ru), исправлены небольшие помарки.

Изменено пользователем Dyr

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно ПЛЗ показать mman.xml Я невьезжаю что в нем нужно отключить, а что нет
Пожалуйста: http://www.pastie.org/725544

У него, кстати, есть очень удобный веб-интерфейс администрирования, рекомендую.

last pid: 87043; load averages: 1.96, 1.95, 1.97 up 12+05:04:27 23:13:16

1155 processes:2 running, 1153 sleeping

CPU: 4.5% user, 0.0% nice, 37.5% system, 1.4% interrupt, 56.6% idle

Mem: 202M Active, 686M Inact, 677M Wired, 58M Cache, 214M Buf, 355M Free

Swap: 8192M Total, 8192M Free

 

PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND

59808 root 1026 45 0 230M 85432K ucond 2 0:00 370.02% mman

из-за чего такое может быть?

причем это раз в х секунд...

На другом серваке такого нет :) правда он и загружен меньше

 

ls -la /home/torrents/patched

total 8

drwxrwxrwx 2 root wheel 512 Dec 3 22:29 .

drwxr-xr-x 3 root wheel 512 Dec 3 22:50 ..

Изменено пользователем weldpua2008

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

P.S. В процессе работы выяснился один тонкий момент: некоторые трекеры отдают торренты с флагом "private:1". Такие торренты, вообще говоря, должны обрабатываться клиентскими программами в виде отключения всех механизмов получения пиров (DHT,PEX и т.п.) и оставления лишь серверного трекера. Мы же вставляем в такие торренты наш ретрекер и поскольку вроде как закрытые трекеры проверяют info_hash, такие торренты не участвуют в рейтинге пользователя. Но это, естественно, надо проверять.

Флаг "private:1" никак не влияет на рейтинг пользователя трекера! Если рейтинг учитывается, то он учитывается по всем хэшам.

Изменено пользователем starina

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

weldpua2008, не знаю, надо смотреть... Может быть, стоит собрать не из портов, а из сырцов, поскольку в портах старее.

ls -la /home/torrents/patched

total 8

drwxrwxrwx 2 root wheel 512 Dec 3 22:29 .

drwxr-xr-x 3 root wheel 512 Dec 3 22:50 ..

Смотрите mman.log, и сам патчер - работает ли. Запустите его вручную. Права на папку проверьте.
Флаг "private:1" никак не влияет на рейтинг пользователя трекера! Если рейтинг учитывается, то он учитывается по всем хэшам.
А, ну хорошо, а то я уже взволновался. :)
Изменено пользователем Dyr

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

weldpua2008, не знаю, надо смотреть... Может быть, стоит собрать не из портов, а из сырцов, поскольку в портах старее.
с конфигом наплужил :)

 

Обновил скрипт mypatcher.pl: добавлено ещё одно условие для извлечения имени файла, пофиксена ошибка при пустом списке трекеров в announce_list.

 

Ещё из важного - модуль Net::Bittorrent::File был мною подкорректирован с целью работы с отсутствовавшим в нём announce_list несложным патчем. Вообще говоря, mypatcher.pl можно (и даже, пожалуй, нужно) модифицировать так, чтобы он работал с данными через pipe напрямую и без Net::Bittorrent::File...но мне лень %)

Юзаю последний патчер...

 

Я хоть тот файл пропатчил?

Ставил только /usr/ports/net-p2p/p5-Net-BitTorrent-File

 

Вот ошиюка в логах perl: print() on closed filehandle FILE at /usr/local/lib/perl5/site_perl/5.8.9/Net/BitTorrent/File.pm line 341.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

weldpua2008, тот, тот. :)

Патчер 1.4 используете? Из цитаты это не чётко ясно.

Такая ошибка была и у меня, но к сожалению, я не помню, как её исправил.

341(+- пара строк) строчка у меня выглядит так:

sub save {
        my ($self, $file) = @_;

        my $data = bencode($self->{'data'});
        open(FILE, '>',$file) or die "error open file $file: $!";
        print FILE $data;
        close(FILE);
}

Изменено пользователем Dyr

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Dyr, а можно все последние версии файлов где-нибудь в архивчик? Нагло, конечно, но я запутался с обновлениями :).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

http://l7-filter.sourceforge.net/protocols

говорят торренты и скайп ловят, ктонить пробовал в продакшине?

шифрованные соединения - хер

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А нешифрованные, следовательно, ловит?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Dyr, а можно все последние версии файлов где-нибудь в архивчик? Нагло, конечно, но я запутался с обновлениями :).

Уф, списком мне тоже лень делать. А на крайнюю версию (1.4 на текущий момент) ссылка буквально постом выше вашего.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А нешифрованные, следовательно, ловит?

А также, DHT...?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Уф, списком мне тоже лень делать. А на крайнюю версию (1.4 на текущий момент) ссылка буквально постом выше вашего.
Ага, там всё? Спасибо. Буду думать, как умнее под Linux отфильтровать content-type.
А также, DHT...?
По логике вещей - должен ловить. Точнее, не так. Сам DHT (обмен пирами) наверное не словит, а вот трафик, который пойдет уже к пирам - должен словить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Dyr,

А зачем сохранять торрент-файлы? Для кеширования? Понял.

Ня. http://pastie.org/751760 . Так вроде получше будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кстати, в Linux можно не слушать 80 порт, а редиректить в iptables в l7-filter, после чего искать там content-type. Либо же проверять по match string.

 

/me думает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

iptables -t mangle -A PREROUTING -m string --string "Content-Type: application/x-bittorrent" --algo kmp --to 1500 -j LOG

Что-то такое. Только сначала надо бы посмотреть, 80 ли это порт :).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Dyr,

А зачем сохранять торрент-файлы? Для кеширования? Понял.

Ня. http://pastie.org/751760 . Так вроде получше будет.

Ну если не сохранять файлы, то выглядит лучшим решением, согласен. Там тогда, кстати, можно ещё довольно много выбросить лишнего, то есть связанного с получением имени файла и его сохранением.

 

P.S. Diff в данном случае выглядит предпочтительней.

 

Что-то такое. Только сначала надо бы посмотреть, 80 ли это порт :).
Не пора ли нам завести wiki? ;-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну если не сохранять файлы, то выглядит лучшим решением, согласен. Там тогда, кстати, можно ещё довольно много выбросить лишнего, то есть связанного с получением имени файла и его сохранением.

 

P.S. Diff в данном случае выглядит предпочтительней.

А что там выбрасывать? Вроде ж выбросил :).
Не пора ли нам завести wiki? ;-)
Можно, в принципе.

 

 

Как и чем ты собирал middle-man?

У меня такое:

abram@abram-work ~/Downloads/middleman-2.0.1
> CC=gcc-4.1 make
g++ -c -g -O2 -pthread -Iinclude -I. -Wall -Wno-sign-compare -Wno-unknown-pragmas -Wno-format -D_GNU_SOURCE -DVERSION=\"2.0.1\" -DHAVE_CONFIG_H -D_REENTRANT src/stats.c -o src/stats.o
In file included from include/proto.h:54,
                 from src/stats.c:24:
include/types.h:7: warning: ‘typedef’ was ignored in this declaration
src/stats.c: In member function ‘void Stats::Display(Filebuf*)’:
src/stats.c:44: warning: deprecated conversion from string constant to ‘char*’
src/stats.c: In member function ‘bool StatGroup::Add(std::string, unsigned int (*)(), int)’:
src/stats.c:178: error: lvalue required as left operand of assignment
src/stats.c: In member function ‘bool StatGroup::Add(std::string, char* (*)(), int)’:
src/stats.c:196: error: lvalue required as left operand of assignment
src/stats.c: In member function ‘char* StatCounter::Get()’:
src/stats.c:284: warning: deprecated conversion from string constant to ‘char*’
make: *** [src/stats.o] Error 1

С gcc 4.3 то же. Arch Linux, Debian lenny - то же. :(

Бинарник под Debian (1.9.1) не работает. Бинарник под SuSE ругается на отсутствие libssl-0.9.7 (которой уже давно никто не пользуется).

 

Squid, как по мне - слишком тяжел. Как в нем отключать кешировани и прочее - я не умею :).

 

Кстати, я под Linux-ом сделал так: правило iptables ловит пакеты с намеком на Content-type: application/x-bittorent, срет в лог, syslog срет в пайп скрипту. Скрипт смотрит что к чему и пишет IP трекеров (предположительных) в файл.

Оно, конечно, через pcap ловить правильней, но слишком много жрет.

Изменено пользователем Abram

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Опять застрял :-/. Не могу понять, как приручить squid использовать внешний скрипт для правки контента.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Собрал middleman под Linux.

Патчи:

http://pastie.org/754339 - gcc 4.4.

http://pastie.org/754356 - ыщё один.

http://pastie.org/754354 - x86_64.

 

Спасибо Ivan A-R.

Изменено пользователем Abram

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Dyr,

Покажи полный конфиг middleman. Что-то у меня не заводится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А?! Вот она свобода! )))

http://www.lightreading.com/document.asp?d...ading_node_1211

http://www.lightreading.com/document.asp?d...63&site=cdn

 

А вот для продолжения разговора

www.opendpi.org это детище имение www.ipoque.com

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Покажи полный конфиг middleman. Что-то у меня не заводится.
А уже показывал страждущим. :)

Но его(конфиг) можно ещё больше ужать, так что он у меня сейчас выглядит так: http://www.pastie.org/754733

Висит на адресе 10.78.77.35:3128, разрешает запросы с 10.54.X.X и управление с 10.54.1.12 и него самого.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Dyr,

Он у меня почему-то в упор не хочет делать две вещи - работать прозрачно и патчить торренты :).

Спасибо за конфиг, попробую. Как-то я выше прошляпил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.