tproxy

Screenshot Software:
tproxy
Szczegóły programowe:
Wersja: 0.5.4
Filmu: 12 May 15
Wywoływacz: Benoit Chesneau
Licencja: Wolny
Popularność: 26

Rating: 3.0/5 (Total Votes: 2)

tproxy jest proste proxy Routing TCP (warstwa 7) zbudowany na Geven_t, które pozwala skonfigurować rutynowe logiki w Pythonie. & Nbsp; Jest silnie zainspirowana maszyny proxy, ale mają pewne unikalne jak w modelu pre-widelec pracownik wypożyczony do Gunicorn ,
Instalacja:
Python 2.x wymaga tproxy> = 2,5. Planowane jest wsparcie Python 3.x.
pip install gevent
pip install tproxy
Aby zainstalować ze źródeł:
git clone git: //github.com/benoitc/tproxy.git
cd tproxy
pip install -r requirements.txt
python setup.py install
Przetestuj swoją instalację przez uruchomienie z linii poleceń:
tproxy przykłady / transparent.py
I przejść na http://127.0.0.1:5000, powinieneś zobaczyć głównej Google.
Sposób użycia:
tproxy -h
Zastosowanie: tproxy [OPCJE] ścieżka_skryptu
Opcje:
& Nbsp; - numer wersji programu pokaż wersję i wyjścia
& Nbsp; -h, --help pokazuj tego komunikatu pomocy i kończy
& Nbsp; - log-file = plik Plik dziennika do zapisu. [-]
& Nbsp; - log-level = POZIOM ziarnistości wyjść dziennika. [Info]
& Nbsp; - log-config = plik konfiguracyjny w pliku dziennika do użycia. [Brak]
& Nbsp; -n STRING, --name = STRING
& Nbsp; do korzystania z bazy dla procesu nazewnictwa setproctitle.
& Nbsp; [Brak]
& Nbsp ;-D, --daemon Daemonize Proces Gunicorn. [False]
& Nbsp ;-p FILE, --pid = PLIK nazwa pliku w użyciu pliku PID. [Brak]
& Nbsp; -u USER, procesy robocze Przełącznik --user = użytkownika do uruchomienia w tym użytkownikiem. [501]
& Nbsp; -g GROUP, --group = GROUP
& Nbsp; proces roboczy przełącznik do uruchamiania jako tej grupy. [20]
& Nbsp; -m INT, INT = --umask bit maski dla trybu plików na plikach napisanych przez
& Nbsp; Gunicorn. [0]
& Nbsp; -b ADRES, --bind = ADRES
& Nbsp; Gniazdo do wiązania. [127.0.0.1:8000]
& Nbsp; - zaległości = INT Maksymalna liczba połączeń oczekujących. [2048]
& Nbsp; -w INT, INT = --workers
& Nbsp; liczba procesu roboczego rozpatrywania wniosku.
& Nbsp; [1]
& Nbsp; - pracownik-connections = INT
& Nbsp; Maksymalna liczba jednoczesnych klientów na pracownika.
& Nbsp; [1000]
& Nbsp; -t INT, INT = --timeout
& Nbsp; Pracownicy milczą na więcej niż to wiele sekund są
& Nbsp; zabitych i ponownie uruchomiony. [30]
Sygnały
QUIT - uporządkowane zamykanie. Przestanie akceptować połączenia natychmiast
& Nbsp; i poczekać, aż wszystkie połączenia w pobliżu
TERM - Szybkie zamknięcie. Przestanie akceptować i zamknąć wszystkie conections
& Nbsp; po 10s.
INT - Tak samo jak TERM
HUP - Wdzięku przeładunek. Odśwież wszystkich pracowników z nowym kodem
& Nbsp; w skrypcie routingu.
USR2 - Zmień tproxy w locie
OW A N IA - Zwiększenie liczby od 1 pracownika
TTOU - Zmniejszyć liczbę od 1 pracownika
Exemple routingu skrypt
ponownego importu
re_host = re.compile ("Host:. s * (*) r n")
Klasa CouchDBRouter (object):
& Nbsp; # spojrzenie na tablicy routingu i powrócić węzeł couchdb w użyciu
& Nbsp; def wyszukiwania (self, nazwa):
& Nbsp; "" "coś zrobić" ""
Router = CouchDBRouter ()
# Wykonaj Content-Aware trasy na podstawie danych strumieniowych. Tutaj
# Nagłówek Host z protokołu HTTP jest analizowany, aby znaleźć
# Nazwa użytkownika i rutyny wyszukiwania prowadzony jest na nazwę, aby znaleźć prawidłowe
# Węzeł couchdb. Jeśli nie pasuje można jeszcze wykonany, nic z
Połączenie #. (Zrobić własny serwer couchone ...)
Pełnomocnik def (dane):
& Nbsp; meczach = re_host.findall (dane)
& Nbsp; w przypadku meczów:
& Nbsp; host = router.lookup (matches.pop ())
& Nbsp; return {"zdalnego": host}
& Nbsp; powrót Brak
Przykład SOCKS4 proxy w 18 Linie
Gniazdo import
import struct
Pełnomocnik def (dane):
& Nbsp; len (dane) <9:
& Nbsp; return
& Nbsp; command = ord (dane [1])
& nbsp; ip, port = socket.inet_ntoa (dane [4, 8]), struct.unpack ("> H", dane [2: 4]) [0]
& Nbsp; idx = data.index (" 0")
& nbsp; userid = dane [8: idx]
& Nbsp; jeśli polecenie == 1: #connect
& Nbsp; dict powrotu (remote = "% s:% s"% (IP, port),
& Nbsp; odpowiedź = " 0 X5a 0 0 0 0 0 0",
& Nbsp; Dane data = [idx:])
& Nbsp; dalej:
& Nbsp; return {"blisko": " 0 X5b 0 0 0 0 0 0"}
Wartości Ważny powrotne
& Nbsp; {"zdalnego": ciąg lub krotka} - String host: port serwera, który będzie rozszerzona.
& Nbsp; {"zdalnego": String, "dane": String} - Tak samo jak wyżej, ale z danych wysyła zamiast tego.
& Nbsp; {"zdalnego": String, "dane" String ", odpowiedź": String} - Tak samo jak wyżej, ale odpowiedź z podanych danych do klienta
& Nbsp; Brak - Nic nie rób.
& Nbsp; {"blisko": true} - Zamknij połączenie.
& Nbsp; {"blisko": String} - Zamknij połączenie po wysłaniu ciągu.
obsłużyć błędy
Można z łatwością obsługi błędów przez dodanie funkcji proxy_error w skrypcie:
proxy_error def (klient, e):
& Nbsp; karnet
. Ta funkcja uzyskać instancji ClientConnection (połączenia) jako prąd pierwszych argumentów i błędów w wyjątku drugiego argumentu

Wymagania :

  • Python

Podobne oprogramowanie

mitmproxy
mitmproxy

14 Apr 15

Sirious
Sirious

14 Apr 15

socket_zmq
socket_zmq

20 Feb 15

Tor
Tor

17 Aug 18

Inne programy z deweloperem Benoit Chesneau

fserve
fserve

11 May 15

Couchapp
Couchapp

14 Apr 15

Restkit
Restkit

5 Jun 15

Komentarze do tproxy

Komentarze nie znaleziono
Dodaj komentarz
Włącz zdjęć!