以下是一个简单的Python脚本,实现了SOCKS5代理服务器的基本功能:
import socket
import select
class Socks5Proxy:
def __init__(self, host, port):
self.host = host
self.port = port
def run(self):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server_socket:
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_socket.bind((self.host, self.port))
server_socket.listen()
print(f"SOCKS5 proxy is listening on {self.host}:{self.port}...")
while True:
client_socket, client_address = server_socket.accept()
print(f"Accepted connection from {client_address}")
with client_socket:
# 握手阶段
data = client_socket.recv(1024)
if not data:
continue
client_socket.sendall(b"\x05\x00")
# 请求阶段
data = cli