94 строки
3.7 KiB
Markdown
94 строки
3.7 KiB
Markdown
---
|
|
title: "ProxyConfig Object"
|
|
description: ""
|
|
slug: proxy-config
|
|
hide_title: false
|
|
---
|
|
|
|
# ProxyConfig Object
|
|
|
|
* `mode` string (optional) - The proxy mode. Should be one of `direct`,
|
|
`auto_detect`, `pac_script`, `fixed_servers` or `system`.
|
|
Defaults to `pac_script` proxy mode if `pacScript` option is specified
|
|
otherwise defaults to `fixed_servers`.
|
|
* `direct` - In direct mode all connections are created directly, without any proxy involved.
|
|
* `auto_detect` - In auto_detect mode the proxy configuration is determined by a PAC script that can
|
|
be downloaded at http://wpad/wpad.dat.
|
|
* `pac_script` - In pac_script mode the proxy configuration is determined by a PAC script that is
|
|
retrieved from the URL specified in the `pacScript`. This is the default mode if `pacScript` is specified.
|
|
* `fixed_servers` - In fixed_servers mode the proxy configuration is specified in `proxyRules`.
|
|
This is the default mode if `proxyRules` is specified.
|
|
* `system` - In system mode the proxy configuration is taken from the operating system.
|
|
Note that the system mode is different from setting no proxy configuration.
|
|
In the latter case, Electron falls back to the system settings only if no
|
|
command-line options influence the proxy configuration.
|
|
* `pacScript` string (optional) - The URL associated with the PAC file.
|
|
* `proxyRules` string (optional) - Rules indicating which proxies to use.
|
|
* `proxyBypassRules` string (optional) - Rules indicating which URLs should
|
|
bypass the proxy settings.
|
|
|
|
When `mode` is unspecified, `pacScript` and `proxyRules` are provided together, the `proxyRules`
|
|
option is ignored and `pacScript` configuration is applied.
|
|
|
|
The `proxyRules` has to follow the rules below:
|
|
|
|
```sh
|
|
proxyRules = schemeProxies[";"<schemeProxies>]
|
|
schemeProxies = [<urlScheme>"="]<proxyURIList>
|
|
urlScheme = "http" | "https" | "ftp" | "socks"
|
|
proxyURIList = <proxyURL>[","<proxyURIList>]
|
|
proxyURL = [<proxyScheme>"://"]<proxyHost>[":"<proxyPort>]
|
|
```
|
|
|
|
For example:
|
|
|
|
* `http=foopy:80;ftp=foopy2` - Use HTTP proxy `foopy:80` for `http://` URLs, and
|
|
HTTP proxy `foopy2:80` for `ftp://` URLs.
|
|
* `foopy:80` - Use HTTP proxy `foopy:80` for all URLs.
|
|
* `foopy:80,bar,direct://` - Use HTTP proxy `foopy:80` for all URLs, failing
|
|
over to `bar` if `foopy:80` is unavailable, and after that using no proxy.
|
|
* `socks4://foopy` - Use SOCKS v4 proxy `foopy:1080` for all URLs.
|
|
* `http=foopy,socks5://bar.com` - Use HTTP proxy `foopy` for http URLs, and fail
|
|
over to the SOCKS5 proxy `bar.com` if `foopy` is unavailable.
|
|
* `http=foopy,direct://` - Use HTTP proxy `foopy` for http URLs, and use no
|
|
proxy if `foopy` is unavailable.
|
|
* `http=foopy;socks=foopy2` - Use HTTP proxy `foopy` for http URLs, and use
|
|
`socks4://foopy2` for all other URLs.
|
|
|
|
The `proxyBypassRules` is a comma separated list of rules described below:
|
|
|
|
* `[ URL_SCHEME "://" ] HOSTNAME_PATTERN [ ":" <port> ]`
|
|
|
|
Match all hostnames that match the pattern HOSTNAME_PATTERN.
|
|
|
|
Examples:
|
|
"foobar.com", "\*foobar.com", "\*.foobar.com", "\*foobar.com:99",
|
|
"https://x.\*.y.com:99"
|
|
|
|
* `"." HOSTNAME_SUFFIX_PATTERN [ ":" PORT ]`
|
|
|
|
Match a particular domain suffix.
|
|
|
|
Examples:
|
|
".google.com", ".com", "http://.google.com"
|
|
|
|
* `[ SCHEME "://" ] IP_LITERAL [ ":" PORT ]`
|
|
|
|
Match URLs which are IP address literals.
|
|
|
|
Examples:
|
|
"127.0.1", "\[0:0::1]", "\[::1]", "http://\[::1]:99"
|
|
|
|
* `IP_LITERAL "/" PREFIX_LENGTH_IN_BITS`
|
|
|
|
Match any URL that is to an IP literal that falls between the
|
|
given range. IP range is specified using CIDR notation.
|
|
|
|
Examples:
|
|
"192.168.1.1/16", "fefe:13::abc/33".
|
|
|
|
* `<local>`
|
|
|
|
Match local addresses. The meaning of `<local>` is whether the
|
|
host matches one of: "127.0.0.1", "::1", "localhost".
|