谷歌浏览器插件教程proxy 代理

chrome proxy 代理

使用chrome.proxy API 管理 Chrome 的代理设置。此 API 依赖于类型 API 的 ChromeSetting 原型来获取和设置代理配置。
需要权限

{
  "name": "My extension",
  ...
  "permissions": [
    "proxy"
  ],
  ...
}

对象和属性

Proxy modes 代理模式

ProxyConfig 对象的mode属性决定了 Chrome 在代理使用方面的整体行为。它可以采用以下值:

  • direct
    在direct模式下,所有连接都是直接创建的,不涉及任何代理。此模式不允许ProxyConfig对象中包含更多参数。

  • auto_detect
    在auto_detect模式下,代理配置由可在http://wpad/wpad.dat下载的 PAC 脚本确定。此模式不允许ProxyConfig对象中包含更多参数。

  • pac_script
    在pac_script模式下,代理配置由 PAC 脚本确定,该脚本要么从对象中指定的 URL 中检索,要么从proxy.PacScript对象中data指定的元素中获取proxy.PacScript。除此之外,此模式不允许ProxyConfig对象中的其他参数。

  • fixed_servers
    在fixed_servers模式中,代理配置被编码在一个proxy.ProxyRules对象中。它的结构在代理规则中描述。除此之外,该fixed_servers模式不允许ProxyConfig对象中的其他参数。

  • system
    在system模式下,代理配置取自操作系统。此模式不允许ProxyConfig对象中包含更多参数。请注意,该system模式与设置无代理配置不同。在后一种情况下,只有当没有命令行选项影响代理配置时,Chrome 才会回退到系统设置。

Proxy rules 代理规则

proxy.ProxyRules对象可以包含singleProxy属性或proxyForHttp、proxyForHttps、proxyForFtp和的子集fallbackProxy。
在第一种情况下,HTTP、HTTPS 和 FTP 流量通过指定的代理服务器进行代理。其他流量直接发送。在后一种情况下,行为稍微微妙一些:如果为 HTTP、HTTPS 或 FTP 协议配置了代理服务器,则相应的流量将通过指定的服务器进行代理。如果未指定此类代理服务器或流量使用与 HTTP、HTTPS 或 FTP 不同的协议,fallbackProxy则使用 。如果fallbackProxy指定 no,则直接发送流量,无需代理服务器。

Proxy server objects 代理服务器对象

在proxy.ProxyServer对象中配置代理服务器。与代理服务器的连接(由host属性定义)使用属性中定义的协议scheme。如果scheme指定 no,则代理连接默认为http。
如果port在对象中定义no proxy.ProxyServer,则端口派生自方案。默认端口为:

协议 端口
http80
https443
socks41080
socks51080

Bypass list 绕过列表

个别服务器可能被排除在代理之外bypassList。此列表可能包含以下条目:

  • [SCHEME://]HOST_PATTERN[:PORT]
正则 匹配 不匹配
".foobar.com""www.foobar.com""foobar.com"
"*.foobar.com""www.foobar.com""foobar.com"
"foobar.com""foobar.com""www.foobar.com"
"*foobar.com""foobar.com", "www.foobar.com", "foofoobar.com"
  • [SCHEME://]IP_LITERAL[:PORT]
    匹配作为 IP 地址文字的 URL。从概念上讲,这与第一种情况类似,但有处理 IP 文字规范化的特殊情况。例如,匹配“[0:0:0::1]”与匹配“[::1]”是一样的,因为 IPv6 规范化是在内部完成的。

示例:127.0.1, [0:0::1], [::1]:80,https://[::1]:443

  • IP_LITERAL/PREFIX_LENGTH_IN_BITS
    IP_LITERAL匹配给定范围内包含 IP 文字 ( ) 的任何 URL 。IP 范围 ( PREFIX_LENGTH_IN_BITS) 使用CIDR 表示法指定。
    匹配给定范围内包含 IP 文字的任何 URL。IP 范围是使用 CIDR 表示法指定的。例子:"192.168.1.1/16", "fefe:13::abc/33"

  • <local>
    文字字符串 <local> 匹配简单的主机名。简单主机名是不包含点且不是 IP 文字的主机名。例如exampleandlocalhost是简单的主机名,而example.com,example.和 [::1] 不是。

例子:"<local>"

例子

以下代码为与除 foobar.com 之外的所有服务器的 HTTP 连接设置 SOCKS 5 代理,并为所有其他协议使用直接连接。这些设置适用于常规和隐身窗口,因为隐身窗口从常规窗口继承设置。另请参阅Types API文档。

var config = {
  mode: "fixed_servers",
  rules: {
    proxyForHttp: {
      scheme: "socks5",
      host: "1.2.3.4"
    },
    bypassList: ["foobar.com"]
  }
};
chrome.proxy.settings.set(
  {value: config, scope: 'regular'},
  function() {}
);
需要花费 5 个 学币,后才能查看完整内容 立即购买

1 人点赞

评论区 (0)

没有记录
支持 markdown,图片截图粘贴拖拽都可以自动上传。
哪吒

哪吒 · 中级学士

热爱技术,喜欢新东西。

老程序员年度分享MVP
查看更多

最新视频课程