tproxy

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

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

fu
fu

14 Apr 15

pymiproxy
pymiproxy

20 Feb 15

nginx
nginx

22 Jun 18

Annen programvare fra utvikleren Benoit Chesneau

hroute
hroute

11 May 15

Couchapp
Couchapp

14 Apr 15

http-parser
http-parser

20 Feb 15

fserve
fserve

11 May 15

Kommentarer til tproxy

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