透明代理

强烈推荐Proxifier工具,该工具可以自由组合设置 app + domain + port 三个维度的代理规则。

从官方下载最新的版本,推荐 Standard Edition 版本,Portable 免安装版会遇到 chrome 闪退的问题,使用下列对应的序列号激活

  • L6Z8A-XY2J4-BTZ3P-ZZ7DF-A2Q9C(Portable Edition)
  • 5EZ8G-C3WL5-B56YG-SCXM9-6QZAP(Standard Edition)
  • P427L-9Y552-5433E-8DSR3-58Z68(MAC)

打开 Proxifier,接下来分三步进行配置

20220504221613

  • 代理服务器配置
  • 代理规则设置
  • 域名解析设置

代理服务器配置

20220504221734

代理规则设置

配置代理服务器,允许其通过,即 Action 选择 Direct(直连),否则可能导致循环代理,进而卡死被代理的应用
20220504221929

域名解析设置

选择 Resolve hostnames through proxy(通过代理服务器解析域名)

20220504222226

ssl 证书错误

如果访问网站遇到证书错误,勾选下列选项可以解决

20220909233204

java 应用代理

Idea 通过 setting 配置的代理只在 plugin 下载时能够使用上,代码里的请求和 idea 配置的代理无关。另外奇怪的是代码中发送的请求居然无法被上述透明代理捕获到。不过可以使用下面的代码手动设置代理

1
2
3
System.setProperty("https.proxySet", "true");
System.setProperty("https.proxyHost", "127.0.0.1");
System.setProperty("https.proxyPort", "10801");

或者通过命令行进行设置:

1
-Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=10801
协议属性(代理主机/代理端口/不使用代理的主机列表)默认值
HTTPhttp.proxyHost<none>
HTTPhttp.proxyPort80
HTTPhttp.nonProxyHosts<none>
HTTPShttps.proxyHost<none>
HTTPShttps.proxyPort443
HTTPShttps.nonProxyHosts<none>
FTPftp.proxyHost<none>
FTPftp.proxyPort80
FTPftp.nonProxyHosts<none>
SOCKSsocksProxyHost<none>
SOCKSsocksProxyPort1080

详细介绍请参考官方说明: https://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.html