tproxy

Software screenshot:
tproxy
Podrobnosti Software:
Verze: 0.5.4
Datum uploadu: 12 May 15
Vývojka: Benoit Chesneau
Licence: Volný
Popularita: 26

Rating: 3.0/5 (Total Votes: 2)

tproxy je jednoduchý směrování TCP Proxy (vrstva 7) postavený na Geven_t, který umožňuje konfigurovat rutinní logiku v Pythonu. & Nbsp; to silně inspirován ze stroje proxy, ale mají některé jedinečné jako model pre-vidlice pracovníků vypůjčené na Gunicorn ,
Instalace:
tproxy vyžaduje Python 2.x> = 2.5. Podpora Python 3.x je plánována.
PiP nainstalovat gevent
PiP nainstalovat tproxy
Chcete-li instalovat ze zdrojových kódů:
git clone git: //github.com/benoitc/tproxy.git
CD tproxy
Pip nainstalovat -r requirements.txt
python setup.py nainstalovat
Otestujte si své instalaci spuštěním příkazového řádku:
tproxy příklady / transparent.py
A dál http://127.0.0.1:5000, měli byste vidět domovskou stránku Google.
Použití:
tproxy -h
Použití: tproxy [volby] cesta_skriptu
Volby:
& Nbsp; - číslo verze version přehlídka programu a exit
& Nbsp; -h, --help zobrazit tuto nápovědu a skončí
& Nbsp; - log-file = Soubor protokolu k zápisu do. [-]
& Nbsp; - log-level = LEVEL zrnitost výstupů protokolu. [Info]
& Nbsp; - log-config = Soubor protokolu konfigurační použít. [None]
& Nbsp; -n STRING, --name = STRING
& Nbsp; základna pro použití s ​​setproctitle pro procesní pojmenování.
& Nbsp; [Žádný]
& Nbsp ;-D, --daemon Daemonize proces Gunicorn. [False]
& Nbsp ;-P FILE, --pid = SOUBOR název souboru použít pro soubor PID. [None]
& Nbsp; -u USER, --user = přepnutí uživatele pracovních procesů spustit jako tento uživatel. [501]
& Nbsp; -g GROUP, --group = GROUP
& Nbsp; Přepnout pracovní proces spustit jako této skupiny. [20]
& Nbsp; -m INT, --umask = INT bitová maska ​​pro režim souboru na soubory napsaných
& Nbsp; Gunicorn. [0]
& Nbsp; -b ADRESA, --bind = ADRESA
& Nbsp; zásuvka vázat. [127.0.0.1:8000]
& Nbsp; - počet nevyřízených = INT Maximální počet čekajících připojení. [2048]
& Nbsp; -w INT, --workers = INT
& Nbsp; Počet pracovního procesu pro vyřizování žádostí.
& Nbsp; [1]
& Nbsp; - worker-spoje = INT
& Nbsp; Maximální počet současných klientů na jednoho pracovníka.
& Nbsp; [1000]
& Nbsp; -t INT, --timeout = INT
& Nbsp; Dělníci mlčel více než v tomto mnoho sekund jsou
& Nbsp; zabil a restartován. [30]
Signály
QUIT - standardní vypnutí. Přestaň přijímat připojení ihned
& Nbsp; a počkejte, dokud všechna připojení v blízkosti
TERM - Rychlé vypnutí. Přestane přijímat a zavřete všechny conections
& Nbsp; po 10s.
INT - Stejné jako TERM
HUP - Spanilá překládání. Reload všechny pracovníky s novým kódem
& Nbsp; ve směrování skriptu.
USR2 - upgrade tproxy za běhu
Vení - Zvýšit počet pracovníků z 1
TTOU - Snižte počet pracovníka od 1
Exemple o směrování skript
import re
re_host = re.compile ("Host:. S * (*) r n")
třída CouchDBRouter (objekt):
& Nbsp; # pohled na směrovací tabulky a vrátí uzel CouchDB použít
& Nbsp; def vyhledávání (self, název):
& Nbsp; "" "něco" ""
směrovač = CouchDBRouter ()
# Provedení obsahu-aware směrování založené na datech proudu. Zde,
# Informace hostitele záhlaví z HTTP protokolu je analyzovat najít
# Uživatelské jméno a vyhledávání rutina spustit na jméno najít správný
# CouchDB uzel. Pokud může být shoda ještě dělal, dělat nic s
# Připojení. (Vytvořit svůj vlastní couchone server, ...)
def Proxy (data):
& Nbsp; zápasy = re_host.findall (data)
& Nbsp; pokud zápasů:
& Nbsp; host = router.lookup (matches.pop ())
& Nbsp; návrat {"remote": hostitel}
& Nbsp; návrat Žádné
Příklad SOCKS4 proxy v 18 Lines
import socket
import struct
def Proxy (data):
& Nbsp; v případě, len (data) <9:
& Nbsp; návrat
& Nbsp; command = ord (data [1])
& nbsp; IP, port = socket.inet_ntoa (údaje [4: 8]), struct.unpack ("> H", údaje [2: 4]) [0]
& Nbsp; idx = data.index (" 0")
& nbsp; userid = data [8: idx]
& Nbsp; pokud příkaz == 1: #connect
& Nbsp; návrat dict (remote = "% s:% s"% (ip, port),
& Nbsp; odpověď = " 0 X5a 0 0 0 0 0 0",
& Nbsp; data = údaje [IDX:])
& Nbsp; jinak:
& Nbsp; návrat {"blízko": " 0 X5b 0 0 0 0 0 0"}
Valid návratové hodnoty
& Nbsp; {"dálkové": string nebo n-tice} - String je hostitel: port serveru, který bude zastupována.
& Nbsp; {"remote": String, "data": String} - Stejné jako výše, ale odeslat zadaných dat místo.
& Nbsp; {"remote": String, "data": String, "odpověď": String} - Stejné jako výše, ale odpověď se zadanými daty zpět klientovi
& Nbsp; None - Nedělat nic.
& Nbsp; {"blízko": true} - Zavřete připojení.
& Nbsp; {"blízko": String} - Zavřete připojení po odeslání řetězce.
zpracování chyb
Můžete snadno manipulaci chybu přidáním funkce proxy_error ve vašem skriptu:
def proxy_error (klient, e):
& Nbsp; průchod
. Tato funkce dostat instanci ClientConnection (aktuální připojení) jako první argumenty a chyby výjimku ve druhém argumentu

Požadavky na :

  • Python

Podobný software

Seeks
Seeks

15 Apr 15

Sirious
Sirious

14 Apr 15

Ostatní software developer Benoit Chesneau

http-parser
http-parser

20 Feb 15

http-parser
http-parser

12 May 15

fserve
fserve

11 May 15

Komentáře k tproxy

Komentáře nebyl nalezen
Přidat komentář
Zapnout obrázky!