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

Схожі програми

Siproxd
Siproxd

11 May 15

Octopasty
Octopasty

14 Apr 15

Squid
Squid

22 Jun 18

HAproxy
HAproxy

27 Sep 15

Інші програми розробника Benoit Chesneau

hroute
hroute

11 May 15

http-parser
http-parser

12 May 15

Couchapp
Couchapp

14 Apr 15

http-parser
http-parser

20 Feb 15

tproxy

Коментар не знайдено
додати коментар
Включіть картинки!