set_proxy сохраняет конфигурацию прокси, которую сокет PySocks использует при установке соединения. Он не переносит работающий поток от одного посредника к другому.

После открытия соединения его байты принадлежат этому установленному пути. Очистка сохранённой конфигурации прокси не является запросом на перемещение соединения напрямую к месту назначения, а смена адреса не переносит его на новый выход.

Для другого маршрута создайте новый сокет, осознанно настройте его и установите новое соединение с местом назначения. Закройте старый сокет через обычный жизненный цикл приложения.

Держите настройки отдельного сокета отдельно от глобального значения по умолчанию или от monkey-patching модуля socket. Глобальные изменения могут повлиять на последующие сокеты в другом коде, не объясняя, что уже делает существующий сокет.

Если протокол приложения требует непрерывной сессии, повторное подключение требует и логики восстановления этого протокола. Новый путь TCP и другой публичный IP не сохраняют автоматически транзакционное или аутентифицированное состояние приложения.

Похожие статьи