Как заставить Ubuntu соблюдать настройки прокси «ignore-hosts» для IPv6?

10

Я просто набрал под "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настройки, даже настраивая его на «Использовать настройки прокси-сервера системы».

Например, мой прокси-сервер (Ubuntu с Squid3) находится в режиме двойного стека, НО, я НЕ хочу получать доступ к веб-сайтам IPv6 через прокси-сервер, поэтому я пытаюсь игнорировать весь Интернет IPv6 с записью 2000::/3, но, это не работает, как ожидалось.

РЕДАКТИРОВАНИЕ: Кроме того, мне не нужен прокси для доступа к Hyperboriaсайтам, который находится под, fc00::/8но он тоже не работает ...

Почему я это делаю?

Поскольку моя среда уже является сетью, поддерживающей только IPv6, и для доступа к старой интернет-инфраструктуре (только для IPv4) мне необходимо использовать прокси с двумя стеками. Но мне нужен прокси только тогда, когда на сайте нет 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 Desktop, поэтому нет необходимости проходить через прокси при просмотре, Hyperboria fc00::/8но Ubuntu не работает ignore-hostsв настройках прокси.

ThiagoCMC
источник
Некоторые приложения просто не используют этот параметр и отправляют все запросы через прокси, если он установлен.
Майкл Хэмптон

Ответы:

2

Похоже, что это не будет работать с настройками прокси 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) не будет.

Dubu
источник
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
Джон Сканес,
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целях обеспечения его доступности во всем мире. Известно, что другие программы также поддерживают эту переменную.

  • Наконец, вы можете рассмотреть возможность запуска двух серверов Squid. Новый будет использовать ваш текущий как родительский, но только для определенных хостов, используя allow_direct/ never_directsettings. Затем установите новый в качестве прокси - сервера везде ( /etc/apt/apt.conf, /etc/environment, в dconfзаписи). Я не знаю много о сетях с двумя стеками, поэтому я не знаю, сработает ли это, но стоит упомянуть.

Я не пользуюсь сетями с двумя стеками, но, поскольку я нахожусь за прокси в кампусе, мне приходится манипулировать настройками прокси, и я считаю, что последний вариант лучше. Пусть кальмары делают жонглирование.

Мур
источник