tproxy

Phần mềm chụp màn hình:
tproxy
Các chi tiết về phần mềm:
Phiên bản: 0.5.4
Ngày tải lên: 12 May 15
Nhà phát triển: Benoit Chesneau
Giấy phép: Miễn phí
Phổ biến: 26

Rating: 3.0/5 (Total Votes: 2)

tproxy là một proxy đơn giản TCP định tuyến (lớp 7) được xây dựng trên Geven_t, cho phép bạn cấu hình logic thông thường trong Python & nbsp;. Nó lấy cảm hứng từ máy proxy nhưng có một số duy nhất như mô hình công nhân trước ngã ba vay để Gunicorn .
Lắp đặt:
tproxy đòi hỏi Python 2.x> = 2,5. Hỗ trợ Python 3.x là kế hoạch.
pips cài đặt gevent
pips cài đặt tproxy
Để cài đặt từ nguồn:
git clone git: //github.com/benoitc/tproxy.git
cd tproxy
pips cài đặt requirements.txt -r
python setup.py cài đặt
Kiểm tra cài đặt của bạn bằng cách chạy các dòng lệnh:
ví dụ tproxy / transparent.py
Và đi vào http://127.0.0.1:5000, bạn sẽ thấy trang chủ google.
Cách sử dụng:
tproxy -h
Cách sử dụng: tproxy [OPTIONS] script_path
Tùy chọn:
& Nbsp; - số phiên bản phiên bản chương trình của chương trình và thoát
& Nbsp; -h, --help hiển thị thông báo và thoát ra trợ giúp này
& Nbsp; - log-file = FILE Các file log để ghi vào. [-]
& Nbsp; - đăng cấp = LEVEL Các granularity của kết quả đầu ra log. [Info]
& Nbsp; - log-config = FILE Các tập tin cấu hình đăng nhập để sử dụng. [Không]
& Nbsp; STRING -n, --name = STRING
& Nbsp; Một cơ sở để sử dụng với setproctitle cho quá trình đặt tên.
& Nbsp; [Không]
& Nbsp ;-D, --daemon daemonize quá trình Gunicorn. [Sai]
& Nbsp FILE ;-p, --pid = FILE Một tên tập tin để sử dụng cho các tập tin PID. [Không]
& Nbsp; -u USER, --user = USER quá trình lao động Chuyển sang chạy như người dùng này. [501]
& Nbsp; GROUP -g, --group = GROUP
& Nbsp; quá trình lao động Chuyển sang chạy như nhóm này. [20]
& Nbsp; -m INT, --umask = INT Một mặt nạ bit cho chế độ tập tin vào tập tin văn bản bằng
& Nbsp; Gunicorn. [0]
& Nbsp; ĐỊA CHỈ -b, --bind = ADDRESS
& Nbsp; Các ổ cắm để ràng buộc. [127.0.0.1:8000]
& Nbsp; - backlog = INT Số lượng tối đa các kết nối đang chờ. [2048]
& Nbsp; -w INT, --workers = INT
& Nbsp; Số lượng các quá trình công nhân để xử lý yêu cầu.
& Nbsp; [1]
& Nbsp; - nhân-kết nối = INT
& Nbsp; Số lượng tối đa của khách hàng đồng thời mỗi người lao động.
& Nbsp; [1000]
& Nbsp; -t INT, --timeout = INT
& Nbsp; Công nhân im lặng hơn này nhiều giây là
& Nbsp; thiệt mạng và khởi động lại. [30]
Tín hiệu
QUIT - shutdown Graceful. Dừng chấp nhận kết nối lập tức
& Nbsp; và chờ đợi cho đến khi tất cả các kết nối chặt chẽ
HẠN - tắt máy nhanh. Dừng chấp nhận và đóng tất cả các conections
& Nbsp; sau 10s.
INT - Tương tự như HẠN
HUP - nạp lại duyên dáng. Nạp lại tất cả người lao động với mã mới
& Nbsp; trong kịch bản định tuyến của bạn.
USR2 - Nâng cấp tproxy trên bay
TTIN - Tăng số lượng nhân viên từ 1
TTOU - Giảm số lượng công nhân từ 1
dụ của định tuyến kịch bản
tái nhập khẩu
re_host = re.compile ("Máy chủ:. s * (*) r n")
lớp CouchDBRouter (object):
& Nbsp; # nhìn vào bảng định tuyến và trả về một nút couchdb sử dụng
& Nbsp; def tra cứu (self, tên):
& Nbsp; "" "làm một cái gì đó" ""
Router = CouchDBRouter ()
# Thực hiện nội dung nhận thức định tuyến dựa trên các dòng dữ liệu. Ở đây,
# Thông tin tiêu đề chủ ra khỏi giao thức HTTP được phân tích để tìm ra
# Username và một thói quen tra cứu được chạy vào tên để tìm ra chính xác
# Couchdb node. Nếu không phù hợp có thể được thực hiện chưa, không phải làm gì với
# Kết nối. (Làm cho máy chủ couchone riêng của bạn ...)
def proxy (dữ liệu):
& Nbsp; các trận đấu = re_host.findall (dữ liệu)
& Nbsp; nếu trận đấu:
& Nbsp; host = router.lookup (matches.pop ())
& Nbsp; trở lại {"từ xa": host}
& Nbsp; Không trả lại
Ví dụ SOCKS4 Proxy trong 18 dòng
import socket
struct nhập khẩu
def proxy (dữ liệu):
& Nbsp; nếu len (dữ liệu) <9:
& Nbsp; trở lại
& Nbsp; command = ord (dữ liệu [1])
& Nbsp; ip, port = socket.inet_ntoa (dữ liệu [4: 8]), struct.unpack ("> H", dữ liệu [2: 4]) [0]
& Nbsp; idx = data.index (" 0")
& Nbsp; userid = dữ liệu [8: idx]
& Nbsp; nếu lệnh == 1: #connect
& Nbsp; trở dict (remote =:% (ip, port "% s% s"),
& Nbsp; reply = " 0 x5a 0 0 0 0 0 0",
& Nbsp; dữ liệu = dữ liệu [idx:])
& Nbsp; khác:
& Nbsp; trở lại {"gần gũi": " 0 x5b 0 0 0 0 0 0"}
Giá trị trở lại hợp lệ
& Nbsp; {"từ xa": string hoặc tuple} - String là máy chủ: cổng của máy chủ đó sẽ được uỷ nhiệm.
& Nbsp; {"từ xa": String, "dữ liệu": String} - Tương tự như trên, nhưng gửi dữ liệu cho trước thay.
& Nbsp; {"từ xa": String, "dữ liệu": String, "trả lời": String} - Tương tự như trên, nhưng trả lời với dữ liệu trả lại cho khách hàng
& Nbsp; Không - Không làm gì cả.
& Nbsp; {"gần gũi": True} - Đóng kết nối.
& Nbsp; {"gần gũi": String} - Đóng kết nối sau khi gửi các String.
Xử lý lỗi
Bạn có thể dễ dàng xử lý các lỗi bằng cách thêm một chức năng proxy_error trong kịch bản của bạn:
def proxy_error (khách hàng, e):
& Nbsp; qua
. Chức năng này được dụ ClientConnection (kết nối hiện hành) như các đối số đầu tiên và các ngoại lệ lỗi trong đối số thứ hai

Yêu cầu :

  • Python

Phần mềm tương tự

eProxy
eProxy

2 Jun 15

nntp2nntp
nntp2nntp

11 May 15

Tor
Tor

17 Aug 18

Phần mềm khác của nhà phát triển Benoit Chesneau

Couchapp
Couchapp

14 Apr 15

http-parser
http-parser

20 Feb 15

fserve
fserve

11 May 15

Ý kiến ​​để tproxy

Bình luận không
Nhập bình luận
Bật hình ảnh!