Proxy

本文档描述了 Fuzio 中代理功能的工作原理。您可以在此了解如何配置代理设置和处理代理身份验证请求。

默认情况下,Fuzio 使用系统代理设置。

系统代理 

Windows 

Fuzio 使用与 Microsoft Edge 相同的设置。

macOS 

Fuzio 使用网络控制面板下列出的代理设置。这些设置与 Safari 使用的相同。

Linux 

Fuzio 使用 GNOME/KDE 代理设置,或者使用特定的环境变量。当你修改 Fuzio 的代理设置时,并不会修改系统的全局代理设置。

配置 

如果你不希望使用系统代理设置,可以为每个 Profile 单独配置其专属的代理设置。

要配置代理设置,请使用 Proxy

Java
Kotlin
var proxy = profile.proxy();
val proxy = profile.proxy()

如果使用 Engine.proxy() 方法,则会获取与默认 Profile 关联的 Proxy 实例。

如果你希望让库再次使用系统代理设置,请调用:

Java
Kotlin
proxy.config(SystemProxyConfig.newInstance());
proxy.config(SystemProxyConfig.newInstance())

代理设置会存储在用户数据目录中。因此,如果你将 Engine 配置为使用特定的用户数据目录,该 Engine 会记住代理设置,并在下次创建时自动恢复这些设置。

直接连接 

使用此代理配置,连接将完全不使用代理服务器:

Java
Kotlin
proxy.config(DirectProxyConfig.newInstance());
proxy.config(DirectProxyConfig.newInstance())

自动检测 

使用此代理配置,连接会自动检测代理设置:

Java
Kotlin
proxy.config(AutoDetectProxyConfig.newInstance());
proxy.config(AutoDetectProxyConfig.newInstance())

自动代理检测是系统识别 Web 代理服务器的过程。此功能也称为 Web 代理自动发现(WPAD)。启用自动代理检测后,系统会尝试定位负责返回代理集合的代理配置脚本 (wpad.dat or proxy.pac) 。如果找到代理配置脚本,则会下载该脚本,在本地计算机上编译并运行。

自定义 

使用此代理配置,您可以为 HTTP、HTTPS 和 FTP 协议提供自定义代理设置:

Java
Kotlin
var proxyRules = "http=foo:80;https=foo:80;ftp=foo:80;socks=foo:80";
var exceptions = "<local>";  // 绕过代理服务器访问本地网页。
proxy.config(CustomProxyConfig.newInstance(proxyRules, exceptions));
val proxyRules = "http=foo:80;https=foo:80;ftp=foo:80;socks=foo:80"
val exceptions = "<local>"  // 绕过代理服务器访问本地网页。
proxy.config(CustomProxyConfig.newInstance(proxyRules, exceptions))

代理规则示例:

  • http=foopy:80;ftp=foopy2 表示对 http:// URLs 使用 HTTP 代理 foopy:80,对 ftp:// URLs 使用 HTTP 代理 foopy2:80
  • foopy:80 表示对所有 URLs 使用 HTTP 代理 foopy:80
  • socks4://foopy 表示对所有 URL 使用 SOCKS v4 代理 foopy:1080

例外情况的格式可以是以下任何一种:

  • [ URL_SCHEME "://" ] HOSTNAME_PATTERN [ ":" <port> ]

    示例:

    foobar.com
    *foobar.com
    *.foobar.com
    *foobar.com:99
    https://x.*.y.com:99
    
  • "." HOSTNAME_SUFFIX_PATTERN [ ":" PORT ]

    示例:

    .google.com
    .com
    http://.google.com
    
  • [ SCHEME "://" ] IP_LITERAL [ ":" PORT ]

    示例:

    127.0.1
    [0:0::1]
    [::1]
    http://[::1]:99
    
  • IP_LITERAL "/" PREFIX_LENGTH_IN_BITS.

    示例:

    192.168.1.1/16
    fefe:13::abc/33
    
  • "<local>"。匹配本地地址。<local> 表示主机匹配以下之一:127.0.0.1::1localhost

如果需要提供多个异常规则,可以使用逗号进行分隔:*foobar.com,.google.com,<local>

PAC 

使用该代理配置时,连接将使用代理自动配置(PAC)文件中提供的代理设置。你必须提供所需 PAC 文件的有效 URL:

Java
Kotlin
proxy.config(UrlProxyConfig.newInstance("<pac-file-url>"));
proxy.config(UrlProxyConfig.newInstance("<pac-file-url>"))

PAC 文件的 URL 必须是有效的 http:// 地址。不能提供存储在本地文件系统中的 *.pac 文件路径。PAC 文件名必须以 pac 作为扩展名,例如:http://my-site.com/proxy.pac。在 Web 服务器上,PAC 文件必须以 application/x-ns-proxy-autoconfig MIME 类型进行提供。

身份验证 

Fuzio 支持代理身份验证。请参阅身份验证

Chromium 支持基于密码的 SOCKS 代理身份验证。

微信咨询

即库客服

微信公众号二维码

技术客服

微信公众号二维码