Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
export PROXY_LOGIN="DoctorZlo1998" export PROXY_PASSWORD="OMGb0x13" echo $PROXY_LOGIN echo $PROXY_PASSWORD cat > /usr/local/proxy/secure_proxy.py << 'EOF' import socket import threading import select import socketserver import time from collections import defaultdict PORT = 2784 # новый порт MAX_REQ_PER_MIN = 8 BLOCK_TIME = 600 # 10 минут бана requests = defaultdict(list) blocked = {} def log(msg): print(f"[{time.strftime('%Y-%m-%d %H:%M:%S')}] {msg}") def is_blocked(ip): if ip in blocked and time.time() < blocked[ip]: return True elif ip in blocked: del blocked[ip] return False def register_request(ip): now = time.time() requests[ip] = [t for t in requests[ip] if now - t < 60] requests[ip].append(now) if len(requests[ip]) > MAX_REQ_PER_MIN: blocked[ip] = now + BLOCK_TIME log(f"[BAN] {ip} заблокирован на 10 минут") return False return True class Socks5Handler(socketserver.StreamRequestHandler): def handle(self): client_ip = self.client_address[0] log(f"Подключение от {client_ip}") if is_blocked(client_ip): log(f"[ОТКАЗ] {client_ip} в бане") self.connection.close() return if not register_request(client_ip): self.connection.close() return try: self.connection.settimeout(5) self.connection.recv(262) self.connection.sendall(b"\x05\x00") data = self.connection.recv(4) if len(data) < 4 or data[0] != 0x05: return addrtype = data[3] if addrtype == 1: # IPv4 addr = self.connection.recv(4) address = socket.inet_ntoa(addr) elif addrtype == 3: # Domain domain_len = self.connection.recv(1)[0] domain = self.connection.recv(domain_len).decode() address = domain else: return port = int.from_bytes(self.connection.recv(2), 'big') log(f"Запрос: {address}:{port}") remote = socket.create_connection((address, port), timeout=5) self.connection.sendall( b"\x05\x00\x00\x01" + socket.inet_aton("0.0.0.0") + (0).to_bytes(2, 'big') ) while True: r, _, _ = select.select([self.connection, remote], [], [], 10) if self.connection in r: data = self.connection.recv(4096) if not data: break remote.sendall(data) if remote in r: data = remote.recv(4096) if not data: break self.connection.sendall(data) remote.close() self.connection.close() except Exception as e: log(f"Ошибка: {e}") self.connection.close() class ThreadedSocksServer(socketserver.ThreadingTCPServer): allow_reuse_address = True if __name__ == "__main__": log(f"🟢 SOCKS5 сервер запущен на порту {PORT}") server = ThreadedSocksServer(('0.0.0.0', PORT), Socks5Handler) server.serve_forever() EOF
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)