web-dev-qa-db-ja.com

localhostのDIRECTにブラウザを移動させるためのproxy.pacファイルを取得できません

私はこの問題を野放しにするつもりです。

ログイン名に対してユーザーのインターネット使用状況をログに記録するためにプロキシを使用し始めたところです。これはISA Server 2004(これはインターネットゲートウェイサーバー上にあります)に設定されています。認証の統合および基本形式が有効になり、すべてのユーザーに認証を要求する必要があります。 ISAの設定により、内部アドレスとドメインが無視されます。

ユーザーをプロキシサーバーにポイントするために、DHCPサーバーでDHCPINFORMを使用した検出を使用して、クライアントをproxy.pacファイルのネットワーク上の場所にポイントしました( ここで説明 )。また、proxy.pacと同じ領域にwpad.datを設定しました(両方のファイルは同一です)。

私が遊んでいる現在のproxy.pacファイル:

function FindProxyForURL(url, Host)
{       
// Trying to save localhost
   if (localHostOrDomainIs(Host, "localhost")) return "DIRECT";
   if shExpMatch (url, "http://localhost*") return "DIRECT";
// If specific URL needs to bypass proxy, send traffic direct.
var resolved_ip = dnsResolve(Host);
if (isInNet(resolved_ip, "172.22.145.0",  "255.255.255.0") ||
    isInNet(resolved_ip, "192.168.1.0", "255.255.255.0") ||
    isInNet(resolved_ip, "127.0.0.1", "255.255.255.255"))
return "DIRECT";
return "PROXY ^gatewaynamehere^.baytech.local:8080; DIRECT";
}

(内部IPは172.22.145。*の範囲です)

今私が抱えている問題は、localhostまたは127.0.0.1が要求されるたびに、proxy.pacファイルがブラウザをプロキシに移動させることです。 IPアドレスを監視すると、ISAサーバーでリクエストを確認できます。イントラネットで他のサーバーをリクエストできますが、プロキシにアクセスしません(これは正しいです)。しかし、疑わしいです。これは、ISAサーバーの設定によるものであり、proxy.pacファイルによるものではありません(間違っている可能性があります)。

副次的な問題は、Firefoxで動作させるためにFirefoxがproxy.pacファイルを手動で指す必要があることです。また、少数のIEユーザーも手動でポイントする必要があります。ブラウザを自動検出するように設定することをお勧めします(IEとFF)そして、ユーザーがどこにいてもすべてが機能するようにします。

グループポリシーまたはブラウザ設定を使用して手動で設定することは、ラップトップを持ち帰る人に問題を引き起こすため、理想的ではありません。

また、ここで説明するようにIEプロキシキャッシュを無効にしてみました: http://support.Microsoft.com/kb/271361

私が見たいくつかのプロキシ情報サイト:

前もって感謝します。

3
Qwerty

わかりました、私はこれを今実行していると思います...

私の実際の問題は、そもそも実行されていなかったということでした。また、proxy.pacファイルにエラーがある場合、サイレントモードで停止することを決定します。だから私は基本に戻って、本当に素朴なproxy.pacファイルを使って自分のマシンでローカルに実行しようとしました。 (アラートが初めて表示され始めたときにショックを受けました)。

それが機能するようになったら、ネットワークで機能するものができるまで、1行ずつ構築しました。

このスレッドの将来のすべての読者にとっても重要な情報です!

次に、元々あったサーバーに戻し、FFとIEの両方の自動検出で問題が発生しました。少し調べてみると、自動検出がオンになっている場合、IE7とIE8はpacファイルの処理が異なるようです。 (使用しているプロキシピックアップ方法はDHCPです)。したがって、IE8はipconfig/renewを必要とし、IE7はipconfig/renewおよびipconfig/flushdnsを必要とするようです。

また、Firefoxはエラーコンソール(Ctrl + Shift + J)で発生したアラートのみを報告しましたが、IEはアラートにポップアップを使用しました。

数日後、DHCP252オプションがすべてのワークステーションに広がりました。ただし、FFはまだ自動検出に問題があるようですので、回避策として手動ポイントまたはFoxyProxyアドオンを使用します。

皆様のご意見ありがとうございました!

1
Qwerty

ヒント:Firefoxでpacファイルをデバッグする場合は、alert("blah")を使用してメッセージをデバッグし、エラーコンソール([ツール]メニュー)でメッセージが表示される場所を確認できます。

1
Duncan Smart

私は試していませんが、Sun.com doccoによると、IsInNet関数は最初のパラメーターとしてIPではなくホストを取ります。

だから私はこれだと思います:

if (isInNet(resolved_ip, "172.22.145.0",  "255.255.255.0") ||
        isInNet(resolved_ip, "192.168.1.0", "255.255.255.0") ||
        isInNet(resolved_ip, "127.0.0.1", "255.255.255.255"))
return "DIRECT";

これに変更する必要があります:

if (isInNet(Host, "172.22.145.0",  "255.255.255.0") ||
        isInNet(Host, "192.168.1.0", "255.255.255.0") ||
        isInNet(Host, "127.0.0.1", "255.255.255.255"))
return "DIRECT";
1
Jason Tan

Mozillaベースのブラウザでは、file:URLを使用できます。これにより、.pacファイルのプロトタイプ作成とテストがはるかに簡単になります。

IEではこれを試していません。

0
benc