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 revisionBoth sides next revision
software:freebsd:utp_ctrl_daemon [2015/05/21 19:09]
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|uTPControl-1.05.tar.gz]]\\ 
- 
-**Устарело!**\\ 
-Работать будет, но есть более качественная реализация: [[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