This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
software:freebsd:utp_ctrl_daemon [2022/02/04 18:37] – removed - external edit (Unknown date) 127.0.0.1 | software:freebsd:utp_ctrl_daemon [2022/02/05 04:19] (current) – root | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== uTPControl - block uTP torrent proto ====== | ||
+ | **Версия**: | ||
+ | **Лицензия**: | ||
+ | **Тестировалось на**: FreeBSD 7.3\\ | ||
+ | **Скачать**: | ||
+ | <note important> | ||
+ | - Работает полностью в ядре\\ | ||
+ | - Ложные срабатывания практически исключены</ | ||
+ | |||
+ | Предназначена для " | ||
+ | Мягкое - пакеты не блокируются, | ||
+ | Даже если будет ложное срабатывание - все пакеты пройдут без изменений, | ||
+ | Размер генерируемых пакетов менее 64 байт.\\ | ||
+ | |||
+ | |||
+ | ===== Требования ===== | ||
+ | - Для запуска необходимо наличие IPDIVERT (загруженного модулем либо в ядре); | ||
+ | - ipfw для перенаправления траффика; | ||
+ | - ng_tee для отсылки копий udp пакетов из ipfw в divert сокет программы; | ||
+ | - Привилегии root (не проверял под другими пользователями) | ||
+ | подробнее см: [[https:// | ||
+ | |||
+ | |||
+ | ===== Установка ===== | ||
+ | Устанавливается на сервер, | ||
+ | |||
+ | Скачиваем, | ||
+ | |||
+ | В правила ipfw добавляем: | ||
+ | < | ||
+ | 9999 - порт диверт сокета, | ||
+ | em0 - интерфейс через который ходит трафик.\\ | ||
+ | |||
+ | Запускаем саму программу, | ||
+ | < | ||
+ | |||
+ | |||
+ | ===== Ключи командной строки ===== | ||
+ | **-h** - показать подсказки и выйти\\ | ||
+ | **-d** - стать демоном (отключится от консоли и продолжить работу)\\ | ||
+ | **-b port** - порт диверт сокета, | ||
+ | **-c CPUnum** - привязка к процессору\\ | ||
+ | **-p PID file** - путь к файлу куда сохранить PID на время работы, | ||
+ | **-u uid|user** - идентификатор/ | ||
+ | **-g gid|group** - идентификатор/ | ||
+ | |||
+ | |||
+ | ===== Оптимизация ===== | ||
+ | Сама программа довольно проста: | ||
+ | Читаем из сокета, | ||
+ | |||
+ | Для более оптимальной работы заворачивать весь трафик на программу не нужно, и даже вредно.\\ | ||
+ | Лучше всего будет заворачивать входящий из интернета в локальную сеть: эффект будет тот же, но меньшая нагрузка на интернет канал и на сам сервер, | ||
+ | |||
+ | На нагруженных серверах не рекомендую применять без предварительного тестирования. Для начала хотя бы с маленьких сегментов стоит трафик позаворачивать и мониторить загрузку.\\ | ||
+ | |||
+ | |||
+ | ===== Проверка работоспособности ===== | ||
+ | Скачиваем последний uTorrent (2 и более), | ||
+ | < | ||
+ | (чтобы только по uTP всё качалось).\\ | ||
+ | Закачиваем торрент файл, по популярнее какой нибудь, | ||
+ | Запускаем закачку в начале с выключенной программой uTPControl.\\ | ||
+ | Смотрим чтобы появились пиры.\\ | ||
+ | Запускаем uTPControl на сервере.\\ | ||
+ | Если всё сделано правильно то пиры начнут исчезать из списка и за пару минут исчезнут полностью.\\ | ||
+ | |||
+ | |||
+ | ===== История изменений ===== | ||
+ | **2010.06.07 - 1.05** | ||
+ | * изменены опции сборки: | ||
+ | |||
+ | **2010.06.05 - 1.04** | ||
+ | * исправлена обработка расширений uTP пакета; | ||
+ | * исправлено: | ||
+ | * оптимизирован код рассчитывающий контрольный суммы IP и UDP заголовков | ||
+ | |||
+ | **2010.06.03 - 1.03** | ||
+ | * исправлена работа с ng интерфейсами | ||
+ | * обрабатывается только входящий трафик на интерфейс | ||
+ | * добавлен расчёт контрольной суммы IP пакета | ||
+ | * добавлена доп инфа в отладочном выводе: | ||
+ | |||
+ | **2010.06.02 - 1.02** | ||
+ | * небольшой фикс в функции изменения UID/GID | ||
+ | * код перемещён в /src/, дистрибутив собирается автоматом | ||
+ | |||
+ | **2010.06.01 - 1.01** | ||
+ | * первый публичный релиз | ||
+ | |||
+ | |||
+ | {{tag> |