SOCKS връзка може да се провали локално, преди проксито да получи шанс да разреши дестинацията. Проверете дали кодът ви е разрешил целта, докато е изграждал адреса на сокета.

За Java SOCKS сокет запазете името на целевия хост с неразрешен адрес на дестинацията:

Proxy proxy = new Proxy(Proxy.Type.SOCKS,
    new InetSocketAddress("203.0.113.10", 1080));
Socket socket = new Socket(proxy);
socket.connect(InetSocketAddress.createUnresolved(
    "destination.example", 443), 5000);

Крайната точка и името на хоста са заместители; използвайте вашата SOCKS5 услуга или кандидат от списъка с SOCKS5 проксита за разрешени тестове към публични дестинации. Важното разграничение е между разрешаването на проксито, за да го достигнете, и запазването на името на дестинацията за SOCKS обмена.

След свързване HTTPS клиентът все още се нуждае от TLS сесия за името на хоста на дестинацията. TLS обвивката не трябва да използва името на хоста на проксито като идентичност на партньора.

Проверете и кода на по-високо ниво: библиотека може да извърши собствено търсене, преди да извика вашия конектор. Запазването на име на хост в този адрес на сокета не може да отмени търсене, извършено другаде в приложението.

Подобни статии