如何使Ubuntu尊敬IPv6的“忽略主机”代理设置?


10

"dconf-editor", System → Proxy → ignore-hosts在下面输入了以下内容:

['localhost', '127.0.0.0/8', '::1', '192.168.0.1', '2000::/3', 'fc00::/8']

但是,谷歌浏览器(和apt-get update / upgrade)只是忽略了此设置。

编辑:此外,Firefox不接受ingore-hosts设置,甚至将其配置为“使用系统代理设置”。

例如,我的代理服务器(带Squid3的Ubuntu)处于双堆叠模式,但我不想通过代理访问IPv6网站,这就是为什么我试图忽略带有条目的整个IPv6 Internet 2000::/3,但是,它不能按预期工作。

编辑:另外,我不需要代理访问Hyperboria位于下面的站点,fc00::/8但是它也不起作用...

为什么我要这样做?

因为我的环境已经是仅IPv6网络,并且要访问旧的Internet基础结构(仅IPv4),我需要通过双栈代理。但是我仅在网站没有IPv6时才需要代理...

我怎么知道它不起作用?

很简单,只需访问一个在其上显示IPv6地址的网站,例如http://www.sixxs.nethttp://ipv6.whatismyv6.com,然后,我仍然可以看到Proxy Server的IPv6地址,因此"ignore-hosts entry '2000::/3'"似乎无法正常工作。

编辑:另外,当我尝试访问Hyperboria网站时,Squid返回一个错误,它无法到达fc00::/8 network

(Squid错误:(101)网络无法访问)

(当然不能,cjdns路由器可以在我的Ubuntu桌面上正常运行,因此,浏览时无需通过代理,Hyperboria fc00::/8但是Ubuntu ignore-hosts在代理设置下不受欢迎。


某些应用程序根本不使用此设置,并且如果设置请求,则通过代理发送所有请求。
迈克尔·汉普顿

Answers:


2

看来这不适用于Gnome代理设置。该ignore-hosts设置适用于主机名,地址和地址范围,但在检查地址之前显然无法解析主机名。

ignore-hosts文件(重点由我):

还要注意,主机名排除仅适用于与以名称标识的主机建立的连接,而IP地址排除仅适用于与由address标识的主机建立的连接。也就是说,如果exam​​ple.com的地址为192.168.1.1,而:ignore-hosts列表仅包含“ 192.168.1.1”,则与“ example.com”的连接(例如,通过GNetworkAddress)将使用代理,并且不会连接到“ 192.168.1.1”(例如,通过GInetSocketAddress)。


1

对于Google Chrome和Chromium,您可以创建计算机范围的策略文件。

Linux Chrome管理员快速入门指南

以下是策略模板中的各种代理设置和说明:

// 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.

这也是Chromium命令行文档:Chromium命令行代理设置
Jon Skanes 2014年

1

我不知道如何使 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/etc/environment到处确保其可用性。已知其他程序也可以使用此变量。

  • 最后,您可能考虑运行两个鱿鱼服务器。新主机将使用您当前的主机作为父主机,但仅适用于某些主机,使用allow_direct/ never_direct设置。然后设置一个新的代理服务器到处(/etc/apt/apt.conf/etc/environment,的dconf条目)。我对双栈网络了解不多,所以我不知道这是否可行,但是值得一提。

我不使用双协议栈网络,但是由于我身处校园代理之后,因此我不得不处理代理设置,并且我发现最后一个选择是最好的。让鱿鱼做杂耍。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.