ഒരു 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 സ്ഥാനാർത്ഥികളെയും വിവേചനമില്ലാതെ ഫിൽട്ടർ ചെയ്യുന്നത് ഉപയോഗിക്കേണ്ടിയിരുന്ന കണക്ഷനുകൾ തകർക്കാം. നിങ്ങൾക്ക് തിരിച്ചറിയാൻ കഴിയുന്ന ഏറ്റവും ചെറിയ പരിധിയിൽ തെറ്റായ നിയമം പരിഹരിക്കുക.

അനുബന്ധ ലേഖനങ്ങൾ