Поставете SOCKS преговорите на Netty преди протокола на приложението си
Подредете SOCKS прокси манипулатор на Netty преди трафика на приложението и запазете неразрешен адрес, когато DNS от страна на прокси е желан.
За съществуващ Netty bootstrap/pipeline, където SOCKS сървърът трябва да разреши дестинацията:
bootstrap.resolver(NoopAddressResolverGroup.INSTANCE);
pipeline.addFirst(
new Socks5ProxyHandler(new InetSocketAddress("127.0.0.1", 1080))
);
bootstrap.connect(
InetSocketAddress.createUnresolved("example.com", 443)
);Крайната точка на прокси е локален порт 1080; неразрешената цел на връзката е example.com:443. Не използвайте адреса на прокси за двете роли и не разрешавайте името, преди манипулаторът да го получи. За публични цели по разрешен публичен прокси маршрут списъкът със SOCKS5 проксита предоставя кандидати за крайната точка на прокси на манипулатора.
Поставете Socks5ProxyHandler преди манипулаторите, обменящи трафик към дестинацията. Изчакайте future на прокси връзката, а не просто канал, достигнал слушателя. Отхвърлен метод или дестинация принадлежи на този етап на настройка.
За HTTPS следващият TLS слой използва името на хоста на дестинацията, изискваната проверка и доверие—не идентичността на SOCKS крайната точка. Едва тогава започва обменът HTTP/приложение.
Фрагментът не предоставя цикли на събития, типове канали, TLS/HTTP манипулатори или нормална обработка на грешки. Изберете SOCKS конструктор, съответстващ на нуждите от удостоверяване; HTTP Basic манипулаторът е друг протокол.
Използвайте no-op resolver само там, където този долен манипулатор притежава разрешаването на имена на хостове. Други връзки може да се нуждаят от локално търсене. Дръжте изхода на resolver, future на прокси, TLS и резултата на приложението отделни при диагностициране на проблем.