tproxy

Skjermbilde programvare:
tproxy
Prog.varedetaljer:
Versjon: 0.5.4
Last opp dato: 12 May 15
Utvikler: Benoit Chesneau
Lisens: Gratis
Popularitet: 26

Rating: 3.0/5 (Total Votes: 2)

tproxy er et enkelt TCP routing proxy (lag 7) bygget på Geven_t, som lar deg konfigurere rutine logikken i Python. & Nbsp; Det er tungt inspirert av proxy-maskin, men har noen unik som den pre-gaffel arbeidstaker modell lånt til Gunicorn .
Installasjon:
tproxy krever Python 2.x> = 2,5. Python 3.x støtte er planlagt.
PIP installere gevent
PIP installere tproxy
Slik installerer du fra kilde:
git clone git: //github.com/benoitc/tproxy.git
cd tproxy
Pip installere -r requirements.txt
python setup.py installere
Test installasjonen ved å kjøre kommandolinjen:
tproxy eksempler / transparent.py
Og gå på http://127.0.0.1:5000, bør du se Googles hjemmeside.
Bruk:
tproxy -h
Bruk: tproxy [ALTERNATIVER] script_path
Alternativer:
& Nbsp; - versjon viser programmets versjonsnummer og exit
& Nbsp; h, help vis denne hjelpemeldingen og exit
& Nbsp; - log-file = FIL Loggfilen å skrive til. [-]
& Nbsp; - log-level = NIVÅ Detaljnivået logg utganger. [Info]
& Nbsp; - log-config = filen logg config fil som skal brukes. [Ingen]
& Nbsp; -n STRING, --name = STRING
& Nbsp; En base for å bruke med setproctitle for prosess navngi.
& Nbsp; [Ingen]
& Nbsp ;-D, --daemon Daemonize den Gunicorn prosessen. [False]
& Nbsp ;-p FIL, --pid = FIL Et filnavn som skal brukes for PID-filen. [Ingen]
& Nbsp; -u BRUKER, --user = Bruker Switch arbeidsprosesser til å kjøre som denne brukeren. [501]
& Nbsp; -g GROUP, --group = GROUP
& Nbsp; Switch arbeidsprosessen til å kjøre som denne gruppen. [20]
& Nbsp; -m INT, --umask = INT Litt maske for filen modus på filer som er skrevet av
& Nbsp; Gunicorn. [0]
& Nbsp; -b ADRESSE, --bind = ADRESSE
& Nbsp; Stikkontakten å binde. [127.0.0.1:8000]
& Nbsp; - backlog = INT Maksimalt antall ventende tilkoblinger. [2048]
& Nbsp; -w INT, --workers = INT
& Nbsp; Antallet arbeidsprosessen for håndtering av forespørsler.
& Nbsp; [1]
& Nbsp; - arbeidstaker-tilkoblinger = INT
& Nbsp; Maksimalt antall samtidige klienter per arbeidstaker.
& Nbsp; [1000]
& Nbsp; -t INT, --timeout = INT
& Nbsp; Workers stille i mer enn dette mange sekunder er
& Nbsp; drept og startet på nytt. [30]
Signaler
SLUTT - Graceful nedleggelse. Slutte å godta tilkoblinger gjenoppbygger
& Nbsp; og vente til alle tilkoblinger nær
TERM - Fast nedleggelse. Slutte å godta og lukke alle conections
& Nbsp; etter 10s.
INT - Samme som TERM
HUP - Graceful omlasting. Last alle arbeidstakere med den nye koden
& Nbsp; i din routing script.
USR2 - Oppgrader tproxy på fly
TTIN - Øke antall arbeidstaker fra 1
TTOU - Reduser antall arbeidstaker fra 1
Exemple av ruting skript
import re
re_host = re.compile ("Verts:. s * (*) r n")
klasse CouchDBRouter (objekt):
& Nbsp; # titt på rutetabellen og returnere en CouchDB node å bruke
& Nbsp; def lookup (selv, navn):
& Nbsp; "" "gjøre noe" ""
router = CouchDBRouter ()
# Utfør innhold-aware routing basert på strømdata. Her,
# Host header informasjon fra HTTP-protokollen analyseres for å finne den
# Brukernavn og et oppslag rutine kjøres på navnet for å finne riktig
# CouchDB node. Hvis ingen kamp kan gjøres enda, gjør noe med
# Tilkobling. (Lage din egen couchone server ...)
def proxy (data):
& Nbsp; kampene = re_host.findall (data)
& Nbsp; hvis kampene:
& Nbsp; host = router.lookup (matches.pop ())
& Nbsp; avkastning {"eksterne": host}
& Nbsp; tilbake None
Eksempel SOCKS4 Proxy i 18 Lines
import socket
import struct
def proxy (data):
& Nbsp; hvis len (data) <9:
& Nbsp; retur
& 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; hvis kommandoen == 1: #connect
& Nbsp; avkastning dict (fjern = "% s:% s"% (ip, port),
& Nbsp; reply = " 0 ogX5a 0 0 0 0 0 0",
& Nbsp; data = data [idx:])
& Nbsp; annet:
& Nbsp; avkastning {"close": " 0 X5b 0 0 0 0 0 0"}
Gyldig returverdier
& Nbsp; {"remote:": string eller tuppel} - String er host: port på serveren som skal proxy.
& Nbsp; {"eksterne": String, "data": String} - Samme som ovenfor, men sender de gitte dataene i stedet.
& Nbsp; {"eksterne": String, "data": String "svar": String} - Samme som ovenfor, men svare med gitte data tilbake til klienten
& Nbsp; Ingen - Ikke gjør noe.
& Nbsp; {"close": true} - Lukk tilkobling.
& Nbsp; {"close": String} - Lukk forbindelse etter sending String.
håndtere feil
Du kan enkelt håndtere feil ved å legge en proxy_error funksjon i skriptet:
def proxy_error (klient, e):
& Nbsp; pass
. Denne funksjonen får ClientConnection forekomst (gjeldende tilkobling) som første argumenter og feil unntaket i andre argumentet

Krav

  • Python

Lignende programvare

squid-filter
squid-filter

3 Jun 15

CYAN Secure Web
CYAN Secure Web

11 May 15

liveweb
liveweb

20 Feb 15

Annen programvare fra utvikleren Benoit Chesneau

Couchapp
Couchapp

14 Apr 15

http-parser
http-parser

20 Feb 15

http-parser
http-parser

12 May 15

fserve
fserve

11 May 15

Kommentarer til tproxy

Kommentarer ikke funnet
Legg til kommentar
Slå på bilder!