Comment définir nonProxyHosts pour un proxy SOCKS


Je veux définir la liste nonProxyHosts pour un proxy SOCKS5, c'est-à-dire la liste des noms d'hôtes auxquels une connexion directe doit être utilisée.

Comme le décrivent les oracle docs, il existe des options nommées http.nonProxyHosts et ftp.nonProxyHosts pour définir des exclusions de proxy pour HTTP et FTP, mais il n'y a pas de paramètre spécifique pour les proxys SOCKS.

J'ai essayé http.nonProxyHosts, mais cela n'affecte pas les connexions SOCKS.

Le proxy SOCKS est configuré via:

System.setProperty("socksProxyHost", "192.168.10.10");
System.setProperty("socksProxyPort", "3128");

Mais cela provoque que même les connexions DB à localhost sont utiliser le proxy SOCKS, ce qui est inacceptable.

Comment est-ce censé être utilisé? Comment puis-je exclure certains hôtes des connexions proxifiées?

Author: unwichtich, 2014-08-22

1 answers

La documentation pour les propriétés de réseau Java dit ceci:

Une fois qu'un proxy SOCKS est spécifié de cette manière, toutes les connexions TCP seront tentées via le proxy.

(soulignement ajouté)

Il n'y a aucune disposition pour définir des hôtes non-proxy via les propriétés socks.


Vous pouvez peut-être utiliser les classes Proxy et/ou ProxySelector, mais:

  • ProxySelector est applicable uniquement si votre l'application utilise URLConnection pour établir des connexions.

  • Proxy est applicable pour arbitraire sockets ... mais seulement si vous pouvez fournir l'objet Proxy en tant que paramètre aux appels de constructeur Socket pertinents. (Et vous auriez besoin de logique pour fournir différents objets Proxy en fonction de ce à quoi votre code essaie de se connecter.)


Il y a un RFE exceptionnel pour cela: http://bugs.java.com/bugdatabase/view_bug.do?bug_id=5001942

Le billet suggère une autre solution. Apparemment, si la propriété java.net.useSystemProxies est true, alors (sur certaines plates-formes) le sélecteur de proxy par défaut respectera les hôtes exclude spécifiés dans les paramètres de proxy système appropriés.

 8
Author: Stephen C, 2015-01-01 07:50:45