Не получается подключиться к серверу майнкрафт через свой прокси

Я хочу подключаться к майнкрафт серверу, используя самописный прокси, чтобы потом читать и изменять пакеты. Вот код:

import socket
import threading

class Proxy:
    BUFFER_SIZE = 8192

    def __init__(self, source, dest):  
        self.__source = source
        self.__dest = dest
        self.__server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.__server.bind(self.__source)
        self.__server.listen(1)

    def __serverThread(client, connection):
        while True:
            data = connection.recv(Proxy.BUFFER_SIZE)
            if not data:
                break
            print("client ---> server:", data)
            client.sendall(data+b"\n\n")

    def __clientThread(client, connection):
        while True:
            data = client.recv(Proxy.BUFFER_SIZE)
            if not data:
                break
            print("server ---> client:", data)
            connection.sendall(data)

    def run(self):
        connection, addr = self.__server.accept()
        print("Minecraft client connected to proxy:", addr)

        client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        client.connect(self.__dest)
        print("Proxy connected to minecraft server:", self.__dest)

        threading.Thread(target=Proxy.__serverThread, args=(client, connection)).start()
        threading.Thread(target=Proxy.__clientThread, args=(client, connection)).start()
mcproxy.Proxy(("127.0.0.1", 25565), (здесь пишу доменное имя сервера, 25565)).run()

Когда я подключаюсь к серверу, работающему в локальной сети, все отлично работает. Но проблема возникает тогда, когда я пытаюсь подключиться к серверу в интернете. Я использую опцию подключения по адресу в самом клиенте игры и в поле для ввода ввожу localhost:25565, но в ответ я получаю бесконечное подключение. В консоли выводится:

Minecraft client connected to proxy: ('127.0.0.1', 56915)
Proxy connected to minecraft server: (здесь доменное имя сервера, 25565)

client ---> server: b'\x10\x00\xf9\x05\tlocalhostc\xdd\x02\x1f\x00\x0cleanenjoyer1\x01"Hj\x18=\x05@\xdf\xaa\xf4\r"\xb87%\xb7'

Через некоторое время в майнкрафт пишет, что превышено время ожидания.

Я так же пробовал менять в первом пакете localhost на доменное имя сервера, но это все равно не помогает

Как мне это исправить? Upd: Я попробовал подключиться к серверу aternos, через свой прокси, и все прекрасно работает. Но когда я пытался подключиться к другим серверам, как только мой прокси отправлял первые два пакета, сервер к которому я пытался подключиться сразу же закрывал свой сокет(метод recv начинал возвращать b"")


Ответы (0 шт):