Bir Java isteği birkaç proxy girdisiyle karşılaşabilir: açık istemci yapılandırması, varsayılan seçici, JVM ağ özellikleri ve desteklenen işletim sistemi ayarları. Bir günlük beklenmedik biçimde SOCKS'ten söz ettiğinde, hangi girdinin onu seçtiğini belirleyin.

Varsayılan seçiciyi kullanan kod için tam hedefe ilişkin kararı inceleyin:

URI target = URI.create("https://example.com/");
ProxySelector selector = ProxySelector.getDefault();
if (selector != null) {
    System.out.println(selector.select(target));
}

Bu, seçicinin adaylarını bildirir. Sonunda hangi bağlantının başarılı olduğunu kanıtlamaz ve kendi açık rotası olan bir istemci farklı bir seçim yapabilir.

Etkin ayarları denetleyin

Şunları inceleyin: http.proxyHost, https.proxyHost, socksProxyHost, bunların bağlantı noktaları ve java.net.useSystemProxies. JDK ağ özellikleri belgeleri bunların kapsamını ve önceliğini açıklar. Sistem proxy'si keşfi başlangıçta denetlenir; JVM'i başlatırken bunu bilinçli olarak ayarlayın.

Tarihsel yanıtlar eski Windows iletişim kutuları ile eski JDK'lerin belirli bileşimlerini açıklar. Bu raporlar bir çözümün kökenini açıklayabilir, ancak güncel çalışma zamanının aynı hataya sahip olduğunu kanıtlamaz. Her uygulama için işletim sistemi ayarlarını değiştirmeden önce çalışma zamanı sürümünü ve seçici çıktısını kaydedin.

Uygulama tek bir istemci için HTTP proxy gerektiriyorsa, açık bir proxy yapılandırması bu gereksinimi daha net hale getirebilir. Merkezi otomatik yönlendirme gerekiyorsa, seçicinin beklenmedik SOCKS girdisini neden aldığını veya döndürdüğünü araştırın.

Özel bir seçici kasıtlı atlamaları ve hata işlemeyi korumalıdır. Her SOCKS adayını ayrım gözetmeden filtrelemek, onu kullanması gereken bağlantıları bozabilir. Yanlış kuralı belirleyebildiğiniz en küçük kapsamla düzeltin.

İlgili makaleler