「親」プロキシを必要としない「子」プロキシを設定する方法

「親」プロキシを必要としない「子」プロキシを設定する方法

私はNTLMプロキシサーバーを使用する会社ネットワーク上のラップトップでLinuxを実行しているので、ラップトップでcntlmdをサブプロキシとして実行して親(会社)プロキシサーバーに接続します。ラップトップで実行されるすべてのエントリはlocalhost:3128(CNTLMプロキシアドレス)を使用するように構成され、cntlmdはNTLMプロキシサーバーを使用して非標準認証を処理します。

ラップトップを会社のネットワークから切り離すと、localhost:3128を使用するように設定された複数の場所がある可能性があります。

設定されたプロキシが使用できない場合、プロキシを使用しないように cntlmd を設定することは明らかに不可能です。

1つのオプションは、これらすべての変更を自動化するスクリプトを書くことですが、cntlmが起動しない場合(自動的に)起動できる2番目のサブエージェントを持つ方が簡単です。それ以外の場合は失敗します。 start)))親エージェントを見つけるには)。 2 番目のサブエージェントはネットワークに直接接続されているため、3128 でもリッスンしている場合は、3128 に到達するように構成されているすべてのエントリーがその構成を同じに保つことができます。

これには何を使用できますか? (それとももっと良い方法がありますか?)

ベストアンサー1

何についてエージェント.pac

これはJavaScriptだけです。ローカルコンピュータまたはイントラネット上のWebサーバーでこのファイルをホストし、file:///opt/proxy.pacこのスクリプトを使用してクライアント側で設定できます。次のことができます。ロードバランシングあなたの代理人と一緒に。また、このJavaScriptのIP範囲を使用して、特定のWebサイトのプロキシバイパスなど、さまざまな機能にトラフィックを分割することもできます。

それはします:

  • プロキシが利用できない場合は、ブラウザに直接アクセスするように指示します。
  • 特定のウェブサイトのプロキシバイパス(デフォルトでは、一部のウェブサイトはプロキシを介して機能しません)
  • ローカルおよびイントラネットサーバーのプロキシバイパス
  • など。

PACファイルの例

function FindProxyForURL(url, host) {
    // our local URLs from the domains below example.com don't need a proxy:
    if (shExpMatch(host, "*.example.com"))
    {
            return "DIRECT";
    }

  // If on a internal/LAN IP address, send traffic direct.
  if (isInNet(myIpAddress(), "10.10.1.0", "255.255.255.0"))
  {        
    return "PROXY 10.0.0.100:8080; PROXY 10.0.0.101:8080; DIRECT";
  }
  else
  {
    return "DIRECT";
  }
}

おすすめ記事