Вариант для полного понимания:
Программный код:
import socket
import threading
def handle_client(client_socket):
request = client_socket.recv(1024)
remote_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
remote_socket.connect(('remote.server.com', 80))
remote_socket.send(request)
while True:
response = remote_socket.recv(4096)
if len(response) == 0:
break
client_socket.send(response)
client_socket.close()
remote_socket.close()
def start_proxy():
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('0.0.0.0', 9999))
server.listen(5)
while True:
client_socket, addr = server.accept()
print(f"Accepted connection from {addr}")
client_handler = threading.Thread(target=handle_client, args=(client_socket,))
client_handler.start()
if __name__ == "__main__":
start_proxy()
Это поподробнее, как свои ручонки за HTTP-прокси запустить на Python. Вот тут тебе всё будет.