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 үміткерлерін алаламай сүзу біреуін пайдалануы тиіс қосылымдарды үзуі мүмкін. Қате ережені анықтай алатын ең шағын ауқыммен түзетіңіз.

Қатысты мақалалар