У меня есть простой прокси-сервер с использованием витогоИзменения перенаправления портов витого прокси
destination = portforward.ProxyFactory(dest_host, dest_port)
reactor.listenTCP(listen_port, destination)
reactor.run()
Я хотел бы изменить dest_port при определенных условиях без необходимости перезагрузки сервера.
Я пробовал:
new_dest = portforward.ProxyFactory(dest_host, new_dest_port)
reactor.listenTCP(listen_port, new_dest)
Конечно, это произвело адрес уже используется исключение.
Возможно ли изменить назначение прокси во время работы?
Это решение в основном работает, все новые соединения теперь отправляются на новый порт. Однако установленные соединения продолжают отправлять данные на порт прокси, который был остановлен. Любая идея, почему это так? Я ожидал (и хотел), чтобы существующие соединения были перенаправлены при изменении порта. Есть идеи? –
Выполнение действий с помощью 'stopListening' и' listenTCP' влияет только на порт прослушивания. Порт прослушивания - это отличная вещь. При попытке подключения к порту прослушивания создается новый объект соединения на стороне сервера (обычно это транспорт и протокол). Затем транспорт и протокол полностью отделены от порта прослушивания. Ничто, что происходит с портом, не повлияет на эти соединения. Если вы хотите изменить поведение этих подключений, вам придется что-то изменить в протоколе, обрабатывающем их. –