tproxy

Szoftver screenshot:
tproxy
Szoftver adatai:
Változat: 0.5.4
Feltöltés dátuma: 12 May 15
Fejlesztő: Benoit Chesneau
Engedély: Ingyenes
Népszerűség: 26

Rating: 3.0/5 (Total Votes: 2)

tproxy egy egyszerű TCP routing proxy (layer 7) épül Geven_t, amely lehetővé teszi, hogy konfigurálja a rutin logika Python. & Nbsp; Ez erősen inspirálta proxy gép, de van néhány egyedi, mint a pre-villa munkavállaló modell kölcsönözte Gunicorn .
Felszerelés:
tproxy igényel Python 2.x> = 2,5. Python 3.x támogatást terveznek.
pip telepíteni gevent
pip telepíteni tproxy
Hogy forrásból telepíteni:
git clone git: //github.com/benoitc/tproxy.git
cd tproxy
pip telepíteni -r requirements.txt
python setup.py telepíteni
Teszteld a telepítést ha a parancssorban:
tproxy példák / transparent.py
És megy http://127.0.0.1:5000, látnod kell a Google főoldalán.
Használat:
tproxy -h
Használat: tproxy [Opciók] parancsfájl_elérési_útja
Lehetőségek:
& Nbsp; - változatát mutatják program verziószámát és kilép
& Nbsp; -h, --help mutatják ezt a segítséget és kilép
& Nbsp; - log-file = fájl Az log fájlt, hogy írjon. [-]
& Nbsp; - log-level = SZINT A granularitása log kimenet. [Info]
& Nbsp; - log-config = FILE A napló konfigurációs fájlt. [Nincs]
& Nbsp; -n STRING, --name = STRING
& Nbsp; A bázist használni setproctitle a folyamat elnevezése.
& Nbsp; [Nincs]
& Nbsp ;-D, --daemon vonul a Gunicorn folyamatot. [False]
& Nbsp ;-p FILE, --pid = FILE A fájlnév használni a PID fájl. [Nincs]
& Nbsp; -u user, --user = USER Switch munkavégző folyamatokat futtatni a felhasználó nevében. [501]
& Nbsp; -g GROUP, --group = GROUP
& Nbsp; Switch munkavégző folyamat fut, mint ennek a csoportnak. [20]
& Nbsp; -m INT, --umask = INT bitmaszkok a fájl mód a fájlok által írt
& Nbsp; Gunicorn. [0]
& Nbsp; -b CÍM, --bind = ADDRESS
& Nbsp; Az aljzat kötődni. [127.0.0.1:8000]
& Nbsp; - lemaradás = INT A legnagyobb számú folyamatban lévő kapcsolatokat. [2048]
& Nbsp; -w INT, --workers = INT
& Nbsp; A több munkavállaló kérelmek feldolgozási folyamatában.
& Nbsp; [1]
& Nbsp; - munkás-connections = INT
& Nbsp; A maximális egyidejű ügyfelek egy dolgozóra jutó.
& Nbsp; [1000]
& Nbsp; -t INT, --timeout = INT
& Nbsp; A munkavállalók hallgatott több mint ennyi másodperc
& Nbsp; megölt, és újraindul. [30]
Jelek
Kilépés - lekapcsolása. Megáll fogad kapcsolatokat azonnal
& Nbsp; és várjon, amíg minden kapcsolatot közel
TERM - Gyors leállítás. Ne fogadja el és zárjon be minden conections
& Nbsp; 10s után.
INT - Ugyanaz, mint a TERM
HUP - Kecses, átrakás. Reload minden dolgozót az új kódot
& Nbsp; a routing script.
USR2 - Cseréld tproxy on the fly
Ala p - számának növelése munkás 1
TTOU - számának csökkentése munkás 1
Exemple a routing script
import re
re_host = re.compile ("Host: s * (. *) r n")
osztály CouchDBRouter (tárgy):
& Nbsp; # pillantást a routing tábla és visszatér a couchdb node használata
& Nbsp; def keresési (self, név):
& Nbsp; "" "valamit tenni" ""
router = CouchDBRouter ()
# Végezze tartalomfüggő útválasztás a patak adatokat. Itt, a
# Host header információt a HTTP protokoll elemzett, hogy megtalálják a
# Felhasználónév és egy keresési rutin fut a név, hogy megtalálják a helyes
# Couchdb csomópont. Ha nem egyezik lehet még, nem tesz semmit a
# Kapcsolatban. (Hogy a saját couchone szerver ...)
def proxy (adatok):
& Nbsp; mérkőzést = re_host.findall (adatok)
& Nbsp; Ha mérkőzések:
& Nbsp; host = router.lookup (matches.pop ())
& Nbsp; visszatérés {"távoli": host}
& Nbsp; visszatérni Semmi
Példa SOCKS4 Proxy 18 Lines
import aljzat
import struct
def proxy (adatok):
& Nbsp; Ha len (adat) <9:
& Nbsp; visszatérés
& Nbsp; command = ord (data [1])
& Nbsp; ip, port = socket.inet_ntoa (data [4: 8]), struct.unpack ("> H", data [2: 4]) [0]
& Nbsp; idx = data.index (" 0")
& Nbsp; userid = data [8: idx]
& Nbsp; ha parancsot == 1: #connect
& Nbsp; visszatérő dict (remote = "% s:% s"% (ip, port),
& Nbsp; reply = " 0 X5a 0 0 0 0 0 0",
& Nbsp; data = data [idx:])
& Nbsp; mást:
& Nbsp; visszatérés {"közeli": " 0 X5b 0 0 0 0 0 0"}
Valid visszatérési értékek
& Nbsp; {"távoli": karakterlánc vagy tuple} - karakterlánc a host: port a szerver, amely proxyzására.
& Nbsp; {"távoli": String, az "adatok": karakterlánc} - Ugyanaz, mint fent, de elküldi a megadott adatok helyett.
& Nbsp; {"távoli": String, "adatok": String, "válasz": karakterlánc} - Ugyanaz, mint fent, de válaszolni megadott adatokat az ügyfél felé
& Nbsp; None - Ne tegyen semmit.
& Nbsp; {"közeli": true} - zárja le a kapcsolatot.
& Nbsp; {"közeli": karakterlánc} - A kapcsolat bezárásához elküldése után a húr.
kezeli a hibákat
Könnyedén kezelési hiba hozzáadásával proxy_error funkciót a script:
def proxy_error (kliens, e):
& Nbsp; menetben
Ez a funkció kap a ClientConnection példány (aktuális kapcsolat), mint az első érvek és a hiba kivétel a második argumentum.

követelmények :

  • Python

Hasonló program

restund
restund

20 Feb 15

Sirious
Sirious

14 Apr 15

Octopasty
Octopasty

14 Apr 15

SPIKE Proxy
SPIKE Proxy

3 Jun 15

Más szoftver fejlesztő Benoit Chesneau

hroute
hroute

11 May 15

Restkit
Restkit

5 Jun 15

Couchapp
Couchapp

14 Apr 15

fserve
fserve

11 May 15

Hozzászólások a tproxy

Hozzászólás nem található
Megjegyzés hozzáadása
Kapcsolja be a képeket!