Wie kann Ubuntu die Proxy-Einstellungen für "Ignorieren von Hosts" für IPv6 berücksichtigen?

10

Ich habe gerade unter "dconf-editor", System → Proxy → ignore-hostsfolgendem Inhalt getippt :

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

Google Chrome (und apt-get update / upgrade) ignoriert diese Einstellungen jedoch nur.

BEARBEITET: Außerdem berücksichtigt Firefox die ingore-hostsEinstellungen nicht und konfiguriert sie sogar so, dass sie "System-Proxy-Einstellungen verwenden".

Zum Beispiel befindet sich mein Proxyserver (Ubuntu mit Squid3) im Dual-Stacked-Modus, ABER ich möchte NICHT über den Proxy auf IPv6-Websites zugreifen. Deshalb versuche ich, das gesamte IPv6-Internet mit dem Eintrag zu ignorieren 2000::/3, aber, es funktioniert nicht wie erwartet.

BEARBEITET: Außerdem benötige ich keinen Proxy, um auf HyperboriaWebsites zuzugreifen , die sich unter befinden, fc00::/8aber es funktioniert auch nicht ...

Warum mache ich das?

Da meine Umgebung bereits ein IPv6-Netzwerk ist und ich auf die alte Internetinfrastruktur (nur IPv4) zugreifen möchte, muss ich den Dual-Stacked-Proxy verwenden. Aber ich brauche den Proxy nur, wenn eine Website kein IPv6 hat ...

Wie kann ich wissen, dass es nicht funktioniert?!

Es ist ganz einfach, greifen Sie einfach auf eine Website zu, auf der beispielsweise eine IPv6-Adresse angezeigt wird, http://www.sixxs.netoder http://ipv6.whatismyv6.comich sehe immer noch die IPv6-Adresse des Proxyservers. Sie "ignore-hosts entry '2000::/3'"scheint also nicht zu funktionieren.

BEARBEITET: Wenn ich versuche, auf eine HyperboriaWebsite zuzugreifen , gibt Squid einen Fehler zurück, den es nicht erreichen kannfc00::/8 network

(Squid ERROR: (101) Netzwerk ist nicht erreichbar)

(Natürlich kann es nicht, der cjdnsRouter läuft direkt auf meinem Ubuntu-Desktop, so dass beim Surfen kein Proxy durchlaufen werden muss, Hyperboria fc00::/8aber Ubuntu wird ignore-hostsunter den Proxy-Einstellungen nicht berücksichtigt .

ThiagoCMC
quelle
Einige Anwendungen verwenden diese Einstellung einfach nicht und senden alle Anforderungen über den Proxy, falls eine festgelegt ist.
Michael Hampton

Antworten:

2

Es sieht so aus, als würde dies mit den Gnome-Proxy-Einstellungen nicht funktionieren. Die ignore-hostsEinstellung funktioniert für Hostnamen, Adressen und Adressbereiche, löst jedoch Hostnamen anscheinend nicht auf, bevor sie mit Adressen verglichen werden.

Aus der ignore-hostsDokumentation (Hervorhebung von mir):

Beachten Sie außerdem, dass Ausschlüsse von Hostnamen nur für Verbindungen gelten, die zu Hosts hergestellt wurden, die durch den Namen identifiziert wurden, und Ausschlüsse von IP-Adressen nur für Verbindungen gelten, die zu Hosts hergestellt wurden, die durch die Adresse identifiziert wurden . Das heißt, wenn example.com eine Adresse von 192.168.1.1 hat und die Liste: ignore-hosts nur "192.168.1.1" enthält, verwendet eine Verbindung zu "example.com" (z. B. über eine GNetworkAddress) den Proxy und eine Verbindung zu "192.168.1.1" (z. B. über eine GInetSocketAddress) wird nicht hergestellt.

Dubu
quelle
1

Für Google Chrome und Chromium können Sie eine maschinenweite Richtliniendatei erstellen.

Kurzanleitung für Linux Chrome Administrator

Hier sind verschiedene Proxy-Einstellungen und Beschreibungen aus der Richtlinienvorlage :

// 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.
Jon Skanes
quelle
Hier sind auch die Chromium-Befehlszeilen-Dokumente: Chromium-Befehlszeilen-Proxy-Einstellungen
Jon Skanes
1

Ich weiß nicht , wie zu machen Ubuntu diese Einstellung gehorchen, aber es könnte seine Abhilfe:

  • APT folgt den Einstellungen in /etc/apt/apt.confoder den Umgebungsvariablen (z. B. http_proxy). Die Manpages für apt.conferwähnen keine dconf-Einstellungen, daher denke ich, dass apt sie nicht überprüft. Fügen Sie Folgendes hinzu, um Websites anzugeben, für die apt den Proxy ignorieren soll /etc/apt/apt.conf:

    Acquire::http::Proxy::<hostname/ip> DEFAULT;
    

    Ich denke, dies kann nicht für Bereiche oder Subnetze durchgeführt werden, und Sie benötigen einen Eintrag für jeden Host, um ihn auszuschließen.

  • Chrome berücksichtigt die Umgebungsvariable no_proxy, daher könnte man versuchen, Folgendes zu verwenden:

    no_proxy=localhost,127.0.0.0/8,::1,192.168.0.1,2000::/3,fc00::/8 google-chrome
    

    Definieren Sie no_proxyin /etc/environment, um die Verfügbarkeit überall sicherzustellen. Es ist bekannt, dass auch andere Programme diese Variable berücksichtigen.

  • Zuletzt könnten Sie zwei Squid-Server betreiben . Der neue verwendet Ihren aktuellen als übergeordnetes Element, jedoch nur für bestimmte Hosts, indem Sie die allow_direct/ never_direct-Einstellungen verwenden. Dann setzen Sie die neuen als Proxy - Server überall ( /etc/apt/apt.conf, /etc/environmentdie dconfEinträge). Ich weiß nicht viel über Dual-Stack-Netzwerke, daher weiß ich nicht, ob dies funktionieren würde, aber es ist eine Erwähnung wert.

Ich verwende kein Dual-Stack-Netzwerk, aber da ich mich hinter einem Campus-Proxy befinde, muss ich die Proxy-Einstellungen unter einen Hut bringen, und ich finde, dass die letzte Option am besten ist. Lassen Sie Tintenfisch das Jonglieren machen.

muru
quelle