Защо Java избра SOCKS прокси за вашата HTTP заявка
Прегледайте резултата на ProxySelector и ефективните настройки на JVM, преди да прилагате стари решения за прокси в Windows.
Една Java заявка може да срещне няколко източника на прокси: явна конфигурация на клиента, селекторът по подразбиране, мрежовите свойства на JVM и поддържаните настройки на операционната система. Когато в дневника неочаквано се появи SOCKS, установете кой източник го е избрал.
За код, който използва селектора по подразбиране, прегледайте решението за точното местоназначение:
URI target = URI.create("https://example.com/");
ProxySelector selector = ProxySelector.getDefault();
if (selector != null) {
System.out.println(selector.select(target));
}
Това показва кандидатите на селектора. Не доказва коя връзка в крайна сметка е успяла и клиент със собствен явен маршрут може да направи различен избор.
Проверете ефективните настройки
Прегледайте http.proxyHost, https.proxyHost, socksProxyHost, техните портове и java.net.useSystemProxies. Документацията за мрежовите свойства на JDK описва обхвата и приоритета им. Откриването на системно прокси се проверява при стартиране; задайте го съзнателно при стартиране на JVM.
Историческите отговори описват конкретни комбинации от стари диалози на Windows и стари JDK. Тези доклади могат да обяснят произхода на дадено решение, но не доказват, че текуща среда за изпълнение има същия дефект. Запишете версията на средата и изхода на селектора, преди да променяте настройки на операционната система за всяко приложение.
Ако приложението се нуждае от HTTP прокси за един клиент, явната конфигурация на прокси може да направи това изискване по-ясно. Ако се нуждае от централно автоматично маршрутизиране, проучете защо селекторът е получил или върнал неочаквания SOCKS запис.
Персонализираният селектор трябва да запази умишлените заобикаляния и обработката на откази. Филтрирането на всеки SOCKS кандидат безразборно може да прекъсне връзки, които е трябвало да използват такъв. Поправете неправилното правило в най-малкия обхват, който можете да установите.