tproxy

Software screenshot:
tproxy
Software ətraflı:
Version: 0.5.4
Tarixi Upload: 12 May 15
Geliştirici: Benoit Chesneau
Lisenziya: Pulsuz
Məşhurluq: 26

Rating: 3.0/5 (Total Votes: 2)

. Bu ağır proxy maşın ilham lakin pre-çəngəl işçi model kimi bəzi unikal var ki Gunicorn borc

tproxy siz Python gündəlik məntiq konfiqurasiya imkan verir & nbsp Geven_t inşa sadə TCP marşrutlaşdırma proxy (qat 7) edir .
Instalation:
tproxy Python 2.x> = 2.5 tələb edir. Python 3.x dəstək nəzərdə tutulur.
Gevent bərpa Pip
tproxy bərpa Pip
Mənbədən yüklemek üçün:
git klon git: //github.com/benoitc/tproxy.git
cd tproxy
-r requirements.txt bərpa Pip
python bərpa setup.py
Command line çalışan quraşdırma test:
tproxy nümunələri / transparent.py
Və google ana görmək lazımdır, http://127.0.0.1:5000 getmək.
istifadə:
tproxy h
Istifadə: tproxy [OPTIONS] script_path
Seçimlər:
& Nbsp; - version şou proqramın version sayı və çıxış
& Nbsp; h, bu yardım mesaj və çıxış göstərmək help
& Nbsp; - = fayl daxil yazmaq üçün daxil Fayl. [-]
& Nbsp; - giriş səviyyəli = LEVEL log nəticələr granularity. [Info]
& Nbsp; - =-config daxil istifadə log konfiqurasiya Fayl. [Yox]
& Nbsp; -n STRING, --name = STRING
& Nbsp; A baza prosesi adlandırma üçün setproctitle ilə istifadə etmək.
& Nbsp; [Yox]
& Nbsp ;-D, --daemon Daemonize Gunicorn prosesi. [False]
& Nbsp ;-p FILE, --pid = fayl fayl PID fayl istifadə etmək. [Yox]
& Nbsp; -u USER, User = İstifadəçi Switch işçi proseslər bu istifadəçi kimi çalıştırmak üçün. [501]
& Nbsp; g GROUP, --group = GROUP
& Nbsp; Switch işçi prosesi bu qrup kimi çalıştırmak üçün. [20]
& Nbsp; m INT, --umask = INT tərəfindən yazılmış faylları fayl rejimi üçün bit maska
& Nbsp; Gunicorn. [0]
& Nbsp; b Ünvan, --bind = ünvanı
& Nbsp; socket bağladığı. [127.0.0.1:8000]
& Nbsp; - portfelinizi = INT gözləyən keçid maksimum sayı. [2048]
& Nbsp; w INT, --workers = INT
& Nbsp; sorğuların baxılması üçün işçi prosesi sayı.
& Nbsp; [1]
& Nbsp; - işçi-əlaqələri = INT
& Nbsp; işçi başına eyni zamanda müştərilərin maksimum sayı.
& Nbsp; [1000]
& Nbsp; -t INT, --timeout = INT
& Nbsp; Workers səssiz bu çox saniyə daha çox üçün
& Nbsp; ölən və yenidən. [30]
İşaret
QUIT - Graceful kapatma. Immediatly əlaqələri qəbul Stop
& Nbsp; və qədər bütün əlaqələri yaxın gözləyin
TERM - Fast kapatma. Qəbul dayandırmaq və bütün Conections yaxın
& Nbsp; 10s sonra.
INT - Müddətli eyni
HUP - Graceful yenidən. Yeni kodu ilə bütün işçilərin yenidən yüklə
& Nbsp; sizin marşrutlaşdırma script.
USR2 - Tez tproxy yükseltin
TTIN - 1 işçi sayının artırılması
TTOU - 1 işçi sayı azaldı
marşrutlaşdırma script Exemple
idxal yenidən
re_host = re.compile ("Host:. s * (*) r n")
sinif CouchDBRouter (obyektin):
& Nbsp; marşrutlaşdırma masa # baxmaq və istifadə etmək üçün CouchDB node qayıtmaq
& Nbsp; def Sistemi (özünü, adı):
& Nbsp; "" "bir şey" ""
router = CouchDBRouter ()
# Stream məlumatlar əsasında content-xəbərdar marşrutlaşdırma həyata keçirir. Burada
# HTTP protokol Host header informasiya tapmaq üçün ayrıştırılan edir
# Istifadəçi adı və axtarış təkrarlanan doğru tapmaq üçün adı çalışır
# CouchDB node. Heç bir oyunu hələ edilə bilər, əgər, ilə heç bir şey
# Əlaqəsi. (Öz couchone server etmək ...)
def proxy (data):
& Nbsp; oyunları = re_host.findall (data)
& Nbsp; matçlarda əgər:
& Nbsp; host = router.lookup (matches.pop ())
& Nbsp; qaytarılması {"uzaq" host}
& Nbsp; Yox qayıtmaq
Məsələn SOCKS4 Proxy 18 Lines
idxal socket
idxal struct
def proxy (data):
& Nbsp; əgər len (data) <9:
& Nbsp; qaytarılması
& 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; əgər komanda == 1: #connect
& Nbsp; qaytarılması Dict (uzaq = "% s:% s"% (ip, port)
& Nbsp; Cavab = " 0 x5a 0 0 0 0 0 0 "
& Nbsp; data = data [idx:])
& Nbsp; başqa:
& Nbsp; {"yaxın": "x5b 0 0 0 0 0 0 0 "} qaytarılması
Valid qaytarılması dəyərlər
& Nbsp; {"uzaq": string və ya tuple} - String ev sahibliyi edir: proxied olunacaq server port.
& Nbsp; {"uzaq": String, "data" String} - Yuxarıda kimi eyni, lakin verilən məlumatları əvəzinə göndərin.
& Nbsp; {"uzaq" String "data": String, "cavab" String} - Yuxarıda kimi eyni, lakin müştəriyə geri verilən məlumatlarla cavab
& Nbsp; None - heç bir şey etməyin.
& Nbsp; {"yaxın": True} - qoşulmasını bağlamaq.
& Nbsp; {"yaxın": String} - String göndərilməsinin ardından bağlantısı bağlayın.
idarə səhvlər
Siz asanlıqla script bir proxy_error funksiyası əlavə səhv rəftar bilərsiniz:
def proxy_error (müştəri, e):
& Nbsp; pass
. Bu funksiya ilk dəlilləri və ikinci arqument səhv istisna kimi ClientConnection instansiya (cari connection) almaq

tələblər

  • Python

Oxşar proqram

Turtle
Turtle

11 May 15

nginx
nginx

22 Jun 18

Geliştirici digər proqram Benoit Chesneau

Couchapp
Couchapp

14 Apr 15

fserve
fserve

11 May 15

hroute
hroute

11 May 15

http-parser
http-parser

20 Feb 15

Şərh tproxy

Şərhlər tapılmadı
Şərh əlavə
Images yandırın!