web-dev-qa-db-ja.com

UbuntuでIPv6の「無視ホスト」プロキシ設定を尊重する方法は?

"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 Webサイトにアクセスしたくないため、エントリ2000::/3でIPv6インターネット全体を無視しようとしていますが、 、期待どおりに機能しません。

編集:また、fc00::/8の下にあるHyperboriaサイトにアクセスするためにプロキシは必要ありませんが、機能しません...

なぜ私はこれをしているのですか?

私の環境はすでにIPv6-Onlyネットワークであり、古いインターネットインフラストラクチャ(IPv4-Only)にアクセスするには、デュアルスタックプロキシを経由する必要があります。しかし、WebサイトにIPv6がない場合にのみプロキシが必要です...

それが機能しないことをどうやって知ることができますか?!

簡単です。たとえば、IPv6アドレスが表示されているWebサイト(http://www.sixxs.nethttp://ipv6.whatismyv6.comなど)にアクセスするだけで、プロキシサーバーのIPv6アドレスが表示されるため、"ignore-hosts entry '2000::/3'"が機能していないようです。

編集:さらに、Hyperboria Webサイトにアクセスしようとすると、Squidはfc00::/8 networkに到達できないというエラーを返します

(イカエラー:(101)ネットワークに到達できません)

(もちろん、cjdnsルーターは私のUbuntuデスクトップで実行されているので、Hyperboria fc00::/8を閲覧する際にプロキシを経由する必要はありませんが、Ubuntuはプロキシ設定でignore-hostsを尊重しません。

10
ThiagoCMC

これは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
Dubu

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.
1
Jon Skanes

make 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を定義して、どこでもその可用性を確保します。他のプログラムもこの変数を尊重することが知られています。

  • 最後に、two squidサーバーの実行を検討することもできます。新しいものは、allow_direct/never_direct設定を使用して、現在のホストを親として使用しますが、特定のホストに対してのみ使用します。次に、新しいサーバーをどこでもプロキシサーバーとして設定します(/etc/apt/apt.conf/etc/environmentdconfエントリ)。デュアルスタックネットワーキングについてはあまり知らないので、これが機能するかどうかはわかりませんが、言及する価値はあります。

デュアルスタックネットワーキングは使用しませんが、キャンパスプロキシの背後にいるため、プロキシ設定を調整する必要があり、最後のオプションが最適であることがわかりました。イカにジャグリングをさせてください。

1
muru