tproxy

Скриншот программы:
tproxy
Детали программы:
Версия: 0.5.4
Дата загрузки: 12 May 15
Разработчик: Benoit Chesneau
Тип распространения: Бесплатная
Популярность: 26

Rating: 3.0/5 (Total Votes: 2)

tproxy это просто прокси маршрутизации TCP (слой 7), построенный на Geven_t, который позволяет настроить обычную логику в Python & NBSP;. Это в значительной степени вдохновлен от прокси-сервер, но есть некоторые уникальные, как модели предварительно вилка рабочий заимствовали Gunicorn ,
<Сильный> Отделка:
tproxy требуется Python 2.x> = 2.5. Поддержка Python 3.x планируется.
пункт установить gevent
пункт установить tproxy
Для установки от источника:
Git клон Git: //github.com/benoitc/tproxy.git
CD tproxy
пункт установить -r requirements.txt
питон setup.py установить
Проверьте установку, запустив командную строку:
tproxy примеры / transparent.py
И перейти на http://127.0.0.1:5000, вы должны увидеть домашнюю Google.
<Сильный> Применение:
tproxy -h
Использование: tproxy [опции] script_path
Опции:
& NBSP; - версия шоу-программа в номер версии и выйти
& NBSP; -h, --help показать эту справку и выйти
& NBSP; - лог-файл = файл Файл журнала для записи. [-]
& NBSP; - войти уровня = УРОВЕНЬ детализации выходов журнала. [Информация]
& NBSP; - войти-конфигурации = файл файл журнала конфигурации для использования. [Ни]
& NBSP; -n СТРОКА, --name = STRING
& NBSP; база для использования с setproctitle для именования процесса.
& NBSP; [Отсутствует]
& NBSP ;-D, --daemon демоном процесс Gunicorn. [Ложь]
& NBSP ;-p файл, --pid = ФАЙЛ Имя файла, чтобы использовать для ПИД файла. [Ни]
& NBSP; -u пользователь, --user = USER процессы Переключить рабочий для работы в качестве этого пользователя. [501]
& NBSP; -g ГРУППА, --group = ГРУППА
& NBSP; рабочий процесс для выполнения команды в качестве этой группы. [20]
& NBSP; -m INT, --umask = INT немного маски для режима файла для файлов, написанных
& NBSP; Gunicorn. [0]
& NBSP; -b АДРЕС, АДРЕС --bind =
& NBSP; разъем для привязки. [127.0.0.1:8000]
& NBSP; - отставание = INT максимальное количество ожидающих соединений. [2048]
& NBSP; -w INT, --workers = INT
& NBSP; количество работников процессе обработки запросов.
& NBSP; [1]
& NBSP; - рабочие-соединения = INT
& NBSP; максимальное количество одновременных клиентов в работнику.
& NBSP; [1000]
& NBSP; -t INT, --timeout = INT
& NBSP; Рабочие молчали больше, чем это много секунд
& NBSP; убиты и перезагрузки. [30]
Сигналы
QUIT - корректное завершение работы. Стоп принимать соединения немедленно
& NBSP; и ждать, пока все соединения близко
СРОК - быстрое выключение. Остановка приема и закрыть все conections
& NBSP; через 10 секунд.
INT - То же, что СРОКА
HUP - Изящный перезагрузка. Обновить всех работников с новым кодом
& NBSP; в сценарии маршрутизации.
USR2 - Обновление tproxy на лету
TTIN - Увеличение числа работника от 1
TTOU - Уменьшить количество работника от 1
<Сильный> b Пример сценария маршрутизации
импорт повторно
re_host = re.compile ("Ведущий:. S * (*) г п")
класс CouchDBRouter (объект):
& NBSP; # взгляд на таблицу маршрутизации и возвращает CouchDB узел для применения
& NBSP; Def поиска (я, имя):
& NBSP; "" "сделать что-то" ""
Маршрутизатор = CouchDBRouter ()
# Выполните Content-Aware маршрутизацию на основе данных потока. Здесь
# Информация заголовка хоста из протокола HTTP обрабатывается найти
# Имя пользователя и процедура поиска будет работать на имя, чтобы найти правильный
# CouchDB узел. Если совпадение не может быть пока, ничего не делать с
# Подключение. (Сделать свой собственный сервер couchone ...)
Def прокси (данные):
& NBSP; матчей = re_host.findall (данные)
& NBSP; если матчей:
& NBSP; хост = router.lookup (matches.pop ())
& NBSP; возврат {"дистанционного": хозяин}
& NBSP; не вернуться None
Пример SOCKS4 прокси в 18 Линии
импорт гнездо
импорт структура
Def прокси (данные):
& NBSP; If Len (данные) <9:
& NBSP; возврат
& NBSP; команда = Ord (данные [1])
и NBSP; IP, порт = socket.inet_ntoa (данные [4: 8]), struct.unpack ("> H", данные [2: 4]) [0]
& NBSP; IDX = data.index (" 0")
и NBSP; Userid = данные [8: IDX]
& NBSP; если команда == 1: #connect
& NBSP; возвращение ДИКТ (дистанционное =:% (IP, порт "% S% S"),
& NBSP; ответ = " 0 X5a 0 0 0 0 0 0",
& NBSP; = данные данные [IDX:])
& NBSP; другое:
& NBSP; возврат {"Закрыть": " 0 X5b 0 0 0 0 0 0"}
<Сильный> Действительно возвращаемые значения
& NBSP; {"удаленный:": строка или кортеж} - Строка хост: порт сервера, который будет прокси.
& NBSP; {"дистанционного": Строка, "данные": Строка} - То же самое, но отправить данные сведения, а не.
& NBSP; {"дистанционного": Строка, "данные": Строка, "ответ": Строка} - То же самое, но ответить приведенных данных обратно клиенту
& NBSP; None - ничего не делать.
& NBSP; {"Закрыть": Правда} - Закройте соединение.
& NBSP; {"Закрыть": Строка} - Закройте соединение после отправки String.
обрабатывать ошибки
Вы можете легко обработки ошибки, добавив функцию proxy_error в сценарии:
Def proxy_error (клиент, е):
& NBSP; передача
Эта функция получить экземпляр ClientConnection (текущее соединение) в качестве первых аргументов и исключение ошибок в второй аргумент.

Требования:

  • Python

Похожие программы

Sirious
Sirious

14 Apr 15

ExaProxy
ExaProxy

20 Feb 15

MapProxy
MapProxy

20 Feb 15

Другие программы разработчика Benoit Chesneau

Couchapp
Couchapp

14 Apr 15

http-parser
http-parser

20 Feb 15

Restkit
Restkit

5 Jun 15

Комментарии к tproxy

Комментарии не найдены
добавить комментарий
Включите картинки!