Site Tools


software:freebsd:utp_ctrl_daemon

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
software:freebsd:utp_ctrl_daemon [2015/05/17 01:01]
– [uTPControl - block uTP torrent proto] root
software:freebsd:utp_ctrl_daemon [2022/02/04 18:37]
– removed - external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-====== uTPControl - block uTP torrent proto ====== 
-Версия: 1.05\\ 
-Лицензия: BSD\\ 
-Тестировалось на: FreeBSD 7.3\\ 
-[[http://www.netlab.linkpc.net/download/software/uTPControl/uTPControl-1.05.tar.gz|Download]]\\ 
- 
-**Устарело!**\\ 
-Работать будет, но есть более качественная реализация: [[ru:software:freebsd:ng_utp|uTP (udp torrent) netgraph node]]:\\ 
-  * Работает полностью в ядре 
-  * Ложные срабатывания практически исключены 
- 
-Предназначена для "мягкого" отключения uTP протокола при прохождении шлюза/маршрутизатора.\\ 
-Мягкое - пакеты не блокируются, при обнаружении пакетов очень похожих на uTP генерируются uTP RST пакеты с точно такими же IP/port и отправляются следом.\\ 
-Даже если будет ложное срабатывание - все пакеты пройдут без изменений, и придут дополнительные, которые, скорее всего, будут отброшены принимающей программой как ошибочные.\\ 
-Размер генерируемых пакетов менее 64 байт.\\ 
- 
- 
-===== Требования ===== 
-  - Для запуска необходимо наличие IPDIVERT (загруженного модулем либо в ядре); 
-  - ipfw для перенаправления траффика; 
-  - ng_tee для отсылки копий udp пакетов из ipfw в divert сокет программы; 
-  - Привилегии root (не проверял под другими пользователями) 
-подробнее см: [[https://www.freebsd.org/cgi/man.cgi?query=divert&apropos=0&sektion=0&manpath=FreeBSD+7.3-RELEASE&arch=default&format=html|man divert]] 
- 
- 
-===== Установка ===== 
-Устанавливается на сервер, через который идёт траффик в/из интернета.\\ 
- 
-Скачиваем, и собираем из исходников.\\ 
- 
-В правила ipfw добавляем: 
-<code>add tee 9999 udp from any to any via em0</code> 
-9999 - порт диверт сокета, на котором будет висеть программа\\ 
-em0 - интерфейс через который ходит трафик.\\ 
- 
-Запускаем саму программу, например так:\\ 
-<code>uTPControl -b 9999 -d -u nobody -g nogroup -p /var/run/uTPControl.pid</code> 
- 
- 
-===== Ключи командной строки ===== 
-**-h** - показать подсказки и выйти\\ 
-**-d** - стать демоном (отключится от консоли и продолжить работу)\\ 
-**-b port** - порт диверт сокета, на котором принимать данные от ipfw\\ 
-**-c CPUnum** - привязка к процессору\\ 
-**-p PID file** - путь к файлу куда сохранить PID на время работы, сам удалится по завершению программы\\ 
-**-u uid|user** - идентификатор/логин пользователя под которым работать после запуска\\ 
-**-g gid|group** - идентификатор/группа группа под которым работать после запуска\\ 
- 
- 
-===== Оптимизация ===== 
-Сама программа довольно проста: 1 сокет, 1 буффер, 1 поток.\\ 
-Читаем из сокета, анализируем и пишем обратно при необходимости и тд. Запаса скорости по оптимизации кода практически нет.\\ 
- 
-Для более оптимальной работы заворачивать весь трафик на программу не нужно, и даже вредно.\\ 
-Лучше всего будет заворачивать входящий из интернета в локальную сеть: эффект будет тот же, но меньшая нагрузка на интернет канал и на сам сервер, через который идёт трафик. И чужие юзера не получат ничего лишнего.\\ 
- 
-На нагруженных серверах не рекомендую применять без предварительного тестирования. Для начала хотя бы с маленьких сегментов стоит трафик позаворачивать и мониторить загрузку.\\ 
- 
- 
-===== Проверка работоспособности ===== 
-Скачиваем последний uTorrent (2 и более), в настройках ставим: 
-<code>bt.transp_disposition = 10</code> 
-(чтобы только по uTP всё качалось).\\ 
-Закачиваем торрент файл, по популярнее какой нибудь, чтобы пиров было по больше.\\ 
-Запускаем закачку в начале с выключенной программой uTPControl.\\ 
-Смотрим чтобы появились пиры.\\ 
-Запускаем uTPControl на сервере.\\ 
-Если всё сделано правильно то пиры начнут исчезать из списка и за пару минут исчезнут полностью.\\ 
- 
- 
-===== История изменений ===== 
-**2010.06.07 - 1.05** 
-  * изменены опции сборки: уменьшен размер, увеличена скорость 
- 
-**2010.06.05 - 1.04** 
-  * исправлена обработка расширений uTP пакета; 
-  * исправлено: некоторые старые  клиенты (например uTorrent 1.8.2, BitTorrent 6.1.2) с uTP v0 протоколом были не подвержены влиянию программы; 
-  * оптимизирован код рассчитывающий контрольный суммы IP и UDP заголовков 
- 
-**2010.06.03 - 1.03** 
-  * исправлена работа с ng интерфейсами 
-  * обрабатывается только входящий трафик на интерфейс 
-  * добавлен расчёт контрольной суммы IP пакета 
-  * добавлена доп инфа в отладочном выводе: номер ipfw правила, имя интерфейса 
- 
-**2010.06.02 - 1.02** 
-  * небольшой фикс в функции изменения UID/GID 
-  * код перемещён в /src/, дистрибутив собирается автоматом 
- 
-**2010.06.01 - 1.01** 
-  * первый публичный релиз 
  
software/freebsd/utp_ctrl_daemon.txt · Last modified: 2022/02/05 04:19 by root