web-dev-qa-db-ja.com

Windows 7でネットワーク接続に基づいてプロキシ設定を変更できますか?

ラップトップを職場と自宅の間で移動するインターネットプロキシ設定を変更する必要があります。 Windows 7が現在アクティブなネットワークに基づいてこれらの設定を変更するためのビルド方法はありますか?

26
Hakan Forss

これは、PAC(プロキシ自動構成スクリプト)を使用して設定できます。これらは、JavaScriptで記述された小さなスクリプトで、さまざまな接続ルールを指定できます。最近のほとんどのデスクトップWebブラウザーは問題なくそれらを読み取ることができます。私はInternet ExplorerとFirefoxの両方で同じものをセットアップしています。

ポート81で常にプロキシサーバーproxy.companynameに送信する最小限のPACファイル:

function FindProxyForURL(url, Host)
{
     return "PROXY proxy.companyname:8080";
}

また、取得したIPアドレスの範囲を確認することで、現在使用しているネットワークを確認するPACファイルのもう少し複雑な例です。この例では、社内のすべてのクライアントPCにDHCPによって10.10。*の範囲のIPアドレスが与えられ、ポート81のプロキシサーバーproxy.companynameを介してインターネットにアクセスします。

//Turn debug mode on by setting debug variable to any non-empty string
//Note that "" is an empty string, and that "0", "1" & "test" are not empty strings.


function FindProxyForURL(url, Host)
  {
    var ip = myIpAddress();
    var debug = "";

    if(debug)
    {
        alert("proxy.pac IP=" + ip + "  Host=" + Host + "  URL=" + url);
    }

      // All client PCs on the internal network will have a 10.10.x.x address, check if I have this
     if (shExpMatch(ip, "10.10.*"))
     {
             if(debug)
          {
                 alert("Proxy for " + url);
             }
     return "PROXY proxy.companyname:81";
     }

     // If you have a different IP then this isn't the company network
     else 
     {
             if(debug)
          {
      alert("You are not at CompanyName so going direct for " + url);
             } 
            return "DIRECT";
     }

  }

スクリプトには、動作していることと、現在の接続がどのモード(PROXYまたはDIRECT接続)であるべきかをテストするために使用できるデバッグモードもあります。

接続しているサーバーが社内ネットワークにあるかどうかをチェックする、より複雑なスクリプトを作成することもできます(したがって、PCが現在社内ネットワークにある場合でも、直接接続が必要です)。 d通常のようにIEのプロキシ例外ボックスに入力したものを、次のように展開して配置します。

//Turn debug mode on by setting debug variable to any non-empty string
//Note that "" is an empty string, and that "0", "1" & "test" are not empty strings.


function FindProxyForURL(url, Host)
  {
    var ip = myIpAddress();
    var debug = "";

    if(debug)
    {
        alert("proxy.pac IP=" + ip + "  Host=" + Host + "  URL=" + url);
    }

    // Detect if trying to connect to internal/intranet Host
    if(isPlainHostName(Host) || dnsDomainIs(Host, "intranet.companyname"))
    {
 if(debug)
 {
            alert("Direct for " + url);    
     }
    return "DIRECT";   
    }

    // Detect if trying to connect to URLs on the internal network via internal DNS suffix or IP address
    if(shExpMatch(url, "*.companyname") || shExpMatch(Host, "10.100.*"))
    {
 if(debug)
 {
     alert("Direct for " + url);
 } 
        return "DIRECT";    
    } 

     // All client PCs on the internal network will have a 10.10.x.x address, check if I have this
     if (shExpMatch(ip, "10.10.*"))
     {
             if(debug)
          {
                 alert("Proxy for " + url);
             }
     return "PROXY proxy.companyname:8080";
     }

     // If you have a different IP then this isn't the company network
     else 
     {
             if(debug)
          {
      alert("You are not at CompanyName so going direct for " + url);
             } 
            return "DIRECT";
     }

  }

このファイルを使用して、PCのCドライブのどこかにproxy.pacのような名前で保存します。次にInternet Explorerの場合は、[ツール]-> [オプション](または[コントロールパネル]-> [インターネットオプション])に移動し、[接続]タブをクリックして、[LAN設定]ボタンをクリックします。 。下部にある[プロキシサーバーを使用する]チェックボックスをオフにして、代わりに[自動構成スクリプトを使用する]にチェックマークを付け、file://C:/proxy.pacのようなfile:// URLを使用してPACファイルのアドレスを入力します。

IE proxy settings

または、Firefoxの場合は、[ツール]-> [オプション]に移動し、[詳細設定]タブをクリックし、[ネットワーク]タブをクリックし、[設定]ボタンをクリックして、[自動プロキシ設定URL]設定をクリックします。ここでも、file:/// URLを使用します(Firefoxでは、コロンの後にスラッシュを3つ付けます(例:file:///C:/proxy.pac)。

Firefox proxy settings


Internet Explorer 11でこの動作が変更されたことに注意してください。これで、「file://」URLからPACファイルをロードできなくなりました。 「HTTP://」または「HTTPS://」URL。

Internet Explorer 11では、WinINETチームは、ネットワークスタック全体の相互運用性を促進するために、WinINETのfile://ベースのスクリプトのサポートを無効にしました。代わりに、HTTPまたはHTTPSサーバーでプロキシ設定スクリプトをホストすることをお勧めします。

当面はこの機能を再度有効にする回避策がありますが、今後のアップデートで無効になる可能性があるため、この機能を使用することはお勧めしません。

一時的な回避策として、このブロックは次のレジストリキーを設定することで削除できます。

キー:HKLM\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\
値:EnableLegacyAutoProxyFeatures 
タイプ:REG_DWORD 
データ:1

このブロックは正当な理由で導入されたものであり、ブロックを削除してもWinHTTPベースのアプリケーションが魔法のように修正されるわけではないため、これは一時的な措置にすぎないことに注意してください。

また、この変更を行った後、IE11はauto-configスクリプトのアドレス設定をIE 11がこの構文を1つしか受け入れない)に変更する必要があることにも注意してください(リンク先の記事の下部を参照) IE内部ブログ)。

ただし、前述のように、このレジストリキーの回避策がInternet Explorerの将来のバージョンで引き続き機能する可能性は低いため、WebサーバーでPACを保持する方法を見つける方がはるかに良いでしょう。 Windowsに組み込まれているIIS Webサーバーなら可能ですが、ラップトップにインストールする場合にも機能する最小限のものがあります。

IE Internals blog entry nderstanding Web Proxy Configuration に関する詳細情報。

20
GAThrawn

無料のIPスイッチャー1.0を使用

alt text

説明:

モバイルユーザーが別のネットワークに移動するときは常に、特定のIPアドレス、ゲートウェイアドレス、サブネットマスク、プロキシサーバー、デフォルトプリンターなどを特定のネットワーク環境に変更する必要があります。そのためには、すべてのネットワークのTCP/IP設定情報を覚えておく必要があります。また、システムに適用してインターネットにアクセスするには、コンピューターを再起動する必要があります。

場所を変更するたびにコンピュータネットワーク設定を再構成する時間を無駄にしないでください。無料のIPスイッチャーはあなたにとって完璧なソリューションです。再構成することなく、ワンクリックで事前構成済みのネットワーク設定を切り替えます。無料のIPスイッチャーを使用すると、PCのすべてのネットワーク設定を自動的に変更できます:IPアドレス、ネットワークマスク、デフォルトゲートウェイ、DNSサーバー、Winsサーバー、プロキシ設定、デフォルトプリンターなど。

特徴:

  • 再起動せずに「オンザフライ」でIPネットワーク設定を切り替える
  • Internet Explorerのプロキシサーバー設定を切り替える
  • デフォルトのプリンターを切り替える
  • コンピューター名とワークグループを切り替える
  • 現在のネットワーク設定を設定にインポートします
  • システムトレイアイコンのサポート、Windowsでの自動起動
  • 100%スパイウェアは無料、スパイウェア、アドウェア、ウイルスは含まれません
4
Ivo Flipse

Mobile Net Switch または NetSetMan のような、ネットワーク構成を切り替える他の(有料の)代替手段があります。

3
t3mujin