我刚刚在 下输入了"dconf-editor", System → Proxy → ignore-hosts
以下内容:
['localhost', '127.0.0.0/8', '::1', '192.168.0.1', '2000::/3', 'fc00::/8']
但是,Google Chrome(和apt-get update / upgrade
)只是忽略了这些设置。
编辑:此外,Firefox 不遵守ingore-hosts
设置,甚至将其配置为“使用系统代理设置”。
例如,我的代理服务器(带有 Squid3 的 Ubuntu)处于双栈模式,但是,我不想通过代理访问 IPv6 网站,这就是为什么我尝试使用该条目忽略整个 IPv6 互联网2000::/3
,但是,它不能按预期工作。
编辑:此外,我不需要代理来访问Hyperboria
位于下面的网站,fc00::/8
但它也不起作用......
我为什么要这么做?
因为我的环境已经是 IPv6-Only 网络,并且要访问旧的互联网基础设施(IPv4-Only),我需要通过双栈代理。但我只在网站没有 IPv6 时才需要代理...
我怎么知道它不起作用?!
很简单,只需访问一个显示 IPv6 地址的网站,例如,http://www.sixxs.net
或者http://ipv6.whatismyv6.com
,然后,我仍然看到代理服务器的 IPv6 地址,所以,"ignore-hosts entry '2000::/3'"
似乎不起作用。
编辑:另外,当我尝试访问Hyperboria
网站时,Squid 返回无法访问的错误fc00::/8 network
(Squid 错误:(101)网络无法访问)
(当然不能,cjdns
路由器就在我的 Ubuntu 桌面上运行,所以浏览时无需通过代理Hyperboria fc00::/8
,但 Ubuntu 不遵守ignore-hosts
代理设置。
答案1
看起来这不适用于 Gnome 代理设置。该ignore-hosts
设置适用于主机名、地址和地址范围,但显然在检查地址之前不会解析主机名。
从文档ignore-hosts
(我强调):
另请注意,主机名排除仅适用于与按名称标识的主机建立的连接,并且IP 地址排除仅适用于与地址标识的主机建立的连接也就是说,如果 example.com 的地址为 192.168.1.1,且 :ignore-hosts 列表仅包含“192.168.1.1”,则与“example.com”的连接(例如,通过 GNetworkAddress)将使用代理,而与“192.168.1.1”的连接(例如,通过 GInetSocketAddress)则不会使用代理。
答案2
对于 Google Chrome 和 Chromium,您可以创建机器范围的策略文件。
以下是来自的各种代理设置和说明策略模板:
// Proxy bypass rules
//-------------------------------------------------------------------------
// Google Chrome will bypass any proxy for the list of hosts given here. This
// policy only takes effect if you have selected manual proxy settings at
// 'Choose how to specify proxy server settings'. You should leave this
// policy not set if you have selected any other mode for setting proxy
// policies. For more detailed examples, visit:
// http://www.chromium.org/developers/design-documents/network-settings#TOC-
// Command-line-options-for-proxy-sett
//"ProxyBypassList": "http://www.example1.com,http://www.example2.com,http://internalsite/",
// Choose how to specify proxy server settings
//-------------------------------------------------------------------------
// Allows you to specify the proxy server used by Google Chrome and prevents
// users from changing proxy settings. If you choose to never use a proxy
// server and always connect directly, all other options are ignored. If you
// choose to use system proxy settings or auto detect the proxy server, all
// other options are ignored. If you choose fixed server proxy mode, you can
// specify further options in 'Address or URL of proxy server' and 'Comma-
// separated list of proxy bypass rules'. If you choose to use a .pac proxy
// script, you must specify the URL to the script in 'URL to a proxy .pac
// file'. For detailed examples, visit: http://www.chromium.org/developers
// /design-documents/network-settings#TOC-Command-line-options-for-proxy-sett
// If you enable this setting, Google Chrome ignores all proxy-related options
// specified from the command line. Leaving this policy not set will allow
// the users to choose the proxy settings on their own.
//"ProxyMode": "direct",
// URL to a proxy .pac file
//-------------------------------------------------------------------------
// You can specify a URL to a proxy .pac file here. This policy only takes
// effect if you have selected manual proxy settings at 'Choose how to specify
// proxy server settings'. You should leave this policy not set if you have
// selected any other mode for setting proxy policies. For detailed examples,
// visit: http://www.chromium.org/developers/design-documents/network-settings
// #TOC-Command-line-options-for-proxy-sett
//"ProxyPacUrl": "http://internal.site/example.pac",
// Address or URL of proxy server
//-------------------------------------------------------------------------
// You can specify the URL of the proxy server here. This policy only takes
// effect if you have selected manual proxy settings at 'Choose how to specify
// proxy server settings'. You should leave this policy not set if you have
// selected any other mode for setting proxy policies. For more options and
// detailed examples, visit: http://www.chromium.org/developers/design-
// documents/network-settings#TOC-Command-line-options-for-proxy-sett
//"ProxyServer": "123.123.123.123:8080",
// Enable or disable PIN-less authentication
//-------------------------------------------------------------------------
// If this setting is enabled or not configured, then users can opt to pair
// clients and hosts at connection time, eliminating the need to enter a PIN
// every time. If this setting is disabled, then this feature will not be
// available.
答案3
我不知道该怎么做制作Ubuntu 遵循该设置,但可能有解决方法:
APT 遵循
/etc/apt/apt.conf
或环境变量中的设置(例如http_proxy
)。的手册页apt.conf
没有提到 dconf 设置,所以我认为 apt 不会检查它们。要指定 apt 应忽略代理的站点,请添加到/etc/apt/apt.conf
:Acquire::http::Proxy::<hostname/ip> DEFAULT;
我认为这无法对于范围或子网来完成,并且您需要为每个要排除的主机提供一个条目。
Chrome 尊重 no_proxy 环境变量,因此可以尝试使用它:
no_proxy=localhost,127.0.0.0/8,::1,192.168.0.1,2000::/3,fc00::/8 google-chrome
定义
no_proxy
in/etc/environment
以确保其在任何地方都可用。其他程序也遵守此变量。- 最后,你可以考虑运行二squid 服务器。新的服务器将使用您当前的服务器作为父服务器,但仅限于某些主机,使用
allow_direct
/never_direct
设置。然后将新的服务器设置为所有位置的代理服务器(/etc/apt/apt.conf
、/etc/environment
、dconf
条目)。我对双栈网络了解不多,所以我不知道这是否会起作用,但值得一提。
我不使用双栈网络,但由于我使用校园代理,因此我必须调整代理设置,我发现最后一个选项是最好的。让 squid 来做这个调整。
答案4
在 GNOME Shell 42.3.1 上,对于 IPv4 和 IPv6,我注意到 Firefox v107 忽略了忽略的主机(gsettings get org.gnome.system.proxy ignore-hosts
;也许由于这个错误)。我必须在 Firefox 上再次添加没有代理: