tproxy

Screenshot Λογισμικό:
tproxy
Στοιχεία Λογισμικού:
Εκδοχή: 0.5.4
Ανεβάστε ημερομηνία: 12 May 15
Προγραμματιστής: Benoit Chesneau
Άδεια: Δωρεάν
Δημοτικότητα: 26

Rating: 3.0/5 (Total Votes: 2)

tproxy είναι ένα απλό πληρεξούσιο δρομολόγησης TCP (στρώμα 7) χτισμένο σε Geven_t, η οποία σας επιτρέπει να ρυθμίσετε τη ρουτίνα λογική σε Python & nbsp?. Είναι σε μεγάλο βαθμό εμπνέεται από τη μηχανή μεσολάβησης, αλλά έχουν κάποια μοναδικά όπως το μοντέλο προ-πιρούνι εργαζόμενος δανειστεί για να Gunicorn .
Εγκατάσταση:
tproxy απαιτεί Python 2.x> = 2,5. Υποστήριξη Python 3.x έχει προγραμματιστεί.
Pip εγκαταστήσετε gevent
Pip εγκαταστήσετε tproxy
Για να εγκαταστήσετε από την πηγή:
GIT κλώνος GIT: //github.com/benoitc/tproxy.git
cd tproxy
PIP εγκαταστήσετε -r requirements.txt
python setup.py εγκαταστήσετε
Ελέγξτε την εγκατάσταση εκτελώντας τη γραμμή εντολών:
tproxy παραδείγματα / transparent.py
Και πάμε στο http://127.0.0.1:5000, θα πρέπει να δείτε την αρχική σελίδα του Google.
Χρήση:
tproxy -h
Χρήση: tproxy [ΕΠΙΛΟΓΕΣ] script_path
Επιλογές:
& Nbsp? - Αριθμό έκδοσης έκδοση του προγράμματος επίδειξης και εξόδου
& Nbsp? -h, --help Εμφανιστεί αυτό το μήνυμα βοήθειας και έξοδος
& Nbsp? - Log-file = Το αρχείο καταγραφής, για να γράψει. [-]
& Nbsp? - Log-επίπεδο = ΕΠΙΠΕΔΟ Η διασπορά των αποτελεσμάτων καταγραφής. [Πληροφορίες]
& Nbsp? - Log-config = Στο αρχείο καταγραφής config για να χρησιμοποιήσετε. [Κανένα]
& Nbsp? -η STRING, --name = STRING
& Nbsp? Μια βάση για χρήση με setproctitle για την ονομασία της διαδικασίας.
& Nbsp? [None]
& Nbsp? -D, --daemon Daemonize η διαδικασία Gunicorn. [Λάθος]
& Nbsp ;-p FILE, --pid = ΑΡΧΕΙΟ όνομα ενός αρχείου που θα χρησιμοποιηθεί για το αρχείο PID. [Κανένα]
& Nbsp? -u Χρήστες, τις διαδικασίες εργαζόμενος Switch --user = ΧΡΗΣΤΗΣ να εκτελούνται από αυτόν τον χρήστη. [501]
& Nbsp? -g GROUP, --group = ΟΜΙΛΟΣ
& Nbsp? Διαδικασία εργασίας Εναλλαγή για να τρέξει ως αυτήν την ομάδα. [20]
& Nbsp? -m INT, --umask = INT Μια μάσκα bit για τη λειτουργία του αρχείου για αρχεία που έχουν συνταχθεί από
& Nbsp? Gunicorn. [0]
& Nbsp? -b ΔΙΕΥΘΥΝΣΗ, --bind = ΔΙΕΥΘΥΝΣΗ
& Nbsp? Η υποδοχή να συνδεθεί. [127.0.0.1:8000]
& Nbsp? - Ανεκτέλεστο = INT Ο μέγιστος αριθμός των εκκρεμών συνδέσεων. [2048]
& Nbsp? -w INT, --workers = INT
& Nbsp? Ο αριθμός των εργαζομένων διαδικασία για την διεκπεραίωση των αιτήσεων.
& Nbsp? [1]
& Nbsp? - Εργάτης-συνδέσεις = INT
& Nbsp? Ο μέγιστος αριθμός των ταυτόχρονων πελατών ανά εργαζόμενο.
& Nbsp? [1000]
& Nbsp? -t INT, --timeout = INT
& Nbsp? Εργαζομένων σιωπηλός για περισσότερο από αυτό πολλά δευτερόλεπτα είναι
& Nbsp? Σκοτώθηκαν και επανεκκίνηση. [30]
Σήματα
QUIT - Ομαλός τερματισμού. Σταματήστε να αποδέχεται συνδέσεις χωρίς καθυστέρηση,
& Nbsp? Και περιμένετε έως ότου όλες οι συνδέσεις κοντά
TERM - Γρήγορη τερματισμού. Σταματήστε την αποδοχή και κλείστε όλα τα conections
& Nbsp? Μετά από 10s.
INT - Ίδιο με το TERM
HUP - Ομαλός επαναφόρτωσης. Ανανέωση όλων των εργαζομένων με το νέο κώδικα
& Nbsp? Στο σενάριο δρομολόγησης σας.
USR2 - Αναβάθμιση tproxy on the fly
Ρυ - Αύξηση του αριθμού των εργαζομένων, από την 1η
TTOU - Μείωση του αριθμού των εργαζομένων, από την 1η
Exemple του σεναρίου δρομολόγησης
εκ νέου εισαγωγή
re_host = re.compile («Διοργανωτής:. s * (*) r n")
κατηγορία CouchDBRouter (αντικείμενο):
& Nbsp? # Ματιά στον πίνακα δρομολόγησης και να επιστρέψει ένα κόμβο CouchDB να χρησιμοποιήσετε
& Nbsp? Def αναζήτησης (self, όνομα):
& Nbsp? "" "Κάνουν κάτι" ""
router = CouchDBRouter ()
# Πραγματοποιήστε content-aware δρομολόγηση με βάση τα δεδομένα ρεύμα. Εδώ, η
# Πληροφορίες κεφαλίδα κεντρικού υπολογιστή από το πρωτόκολλο HTTP αναλύεται για να βρείτε το
# Username και μια ρουτίνα αναζήτηση εκτελείται στο όνομα για να βρείτε τη σωστή
# CouchDB κόμβο. Αν δεν ταιριάζουν μπορεί να γίνει ακόμα, δεν κάνουν τίποτα με το
# Σύνδεση. (Κάνει το δικό του server couchone σας ...)
def μεσολάβησης (δεδομένα):
& Nbsp? Αγώνες = re_host.findall (δεδομένα)
& Nbsp? Αν τα παιχνίδια:
& Nbsp? Υποδοχής = router.lookup (matches.pop ())
& Nbsp? Επιστροφή {"εξ αποστάσεως": υποδοχής}
& Nbsp? Return None
Παράδειγμα SOCKS4 μεσολάβησης σε 18 γραμμές
Υποδοχή εισαγωγής
struct εισαγωγής
def μεσολάβησης (δεδομένα):
& Nbsp? Αν len (δεδομένα) <9:
& Nbsp? Επιστροφή
& Nbsp? Εντολή = ord (δεδομένα [1])
& Nbsp? IP, το λιμάνι = socket.inet_ntoa (στοιχεία [4: 8]), struct.unpack ("> H", τα δεδομένα [2: 4]) [0]
& Nbsp? Idx = data.index (" 0")
& Nbsp? Userid = δεδομένων [8: idx]
& Nbsp? Αν == εντολή 1: #connect
& Nbsp? Dict επιστροφής (remote =:% (IP, το λιμάνι "% s% s"),
& Nbsp? Απάντηση = " 0 Χ5α 0 0 0 0 0 0",
& Nbsp? = Τα δεδομένα στοιχεία [idx:])
& Nbsp? Αλλού:
& Nbsp? Επιστροφή {"κλείσιμο": " 0 X5b 0 0 0 0 0 0"}
Τιμές Ισχύει επιστροφή
& Nbsp? {"Εξ αποστάσεως": string ή πλειάδες} - String είναι ο οικοδεσπότης: λιμάνι του server που θα προσεγγίζεται.
& Nbsp? {"Εξ αποστάσεως": string, "δεδομένα": string} - Το ίδιο όπως παραπάνω, αλλά στέλνουν τα δεδομένα στοιχεία αντ 'αυτού.
& Nbsp? {"Εξ αποστάσεως": string, "δεδομένα": string, "απάντηση": String} - Το ίδιο όπως παραπάνω, αλλά η απάντησή με τα δεδομένα στοιχεία πίσω στον πελάτη
& Nbsp? Κανένα - Καμία ενέργεια.
& Nbsp? {"Κοντά": Η αληθινή} - Κλείστε τη σύνδεση.
& Nbsp? {"Κλείσιμο": String} - Κλείστε τη σύνδεση μετά την αποστολή του String.
χειρισμό σφαλμάτων
Μπορείτε εύκολα να χειρίζονται λάθος με την προσθήκη μιας λειτουργίας proxy_error στο σενάριό σας:
def proxy_error (πελάτη, ε):
& Nbsp? Μπάλα
. Αυτή η λειτουργία πάρετε το παράδειγμα ClientConnection (τρέχουσα σύνδεση) ως πρώτη επιχειρήματα και την εξαίρεση λάθους στο δεύτερο επιχείρημα

Απαιτήσεις :

  • Python

Παρόμοια λογισμικά

CGIProxy
CGIProxy

17 Feb 15

GAdmin-SQUID
GAdmin-SQUID

14 Apr 15

fu
fu

14 Apr 15

ProxyChains
ProxyChains

3 Jun 15

Άλλο λογισμικό του προγραμματιστή Benoit Chesneau

fserve
fserve

11 May 15

Restkit
Restkit

5 Jun 15

http-parser
http-parser

12 May 15

Σχόλια για tproxy

Τα σχόλια δεν βρέθηκε
προσθήκη σχολίου
Ενεργοποιήστε τις εικόνες!
Αναζήτηση ανά κατηγορία