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


26

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


1
私は私のラップトップに同じことをして欲しいのですが、答えを探すのが面倒すぎます:
Ivo Flipse

回答:


20

PAC(プロキシ自動構成スクリプト)でこれを設定できます。これらは、さまざまな接続ルールを指定できるJavascriptで書かれた小さなスクリプトです。最近のほとんどのデスクトップWebブラウザは問題なくそれらを読むことができます。InternetExplorerと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:// URLなどを使用してPACファイルのアドレスを入力しますfile://C:/proxy.pac

IEプロキシ設定

あるいは、Firefoxの場合は、[ツール]-> [オプション]に移動し、[詳細設定]タブ、[ネットワーク]タブ、[設定]ボタン、[自動プロキシ構成URL]設定をクリックします。コロンの後の3つのスラッシュfile:///C:/proxy.pacです。

Firefoxプロキシ設定


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

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

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

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

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

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

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

ただし、前述のように、このレジストリキーの回避策がInternet Explorerの将来のバージョンで引き続き機能する可能性は低いため、WebサーバーでPACを保持する方法を見つけることをお勧めします。WindowsのビルトインIIS Webサーバーで十分ですが、ラップトップへのインストールでも機能する最小限のものがあります。

IE Internalsブログエントリの理解Webプロキシ構成についての詳細。


自宅で使用しているのと同じプライベートIP範囲を使用して別のパブリックワイヤレスネットワークにアクセスするまで、それはかなりクールです。:)
ダニーザウアー

素敵な投稿。よく書かれました。
ジェフF.

1
これ Windoes 8.1 では機能しません
Milind R

3
上記の@MilindRのコメントを展開するには、PACファイルはまだWindows 8 / IE11にありますが、PACファイルをHTTPまたはHTTPS URLからロードする必要があります。ファイルベースのパスまたはUNCを使用することはできません。Internet Explorerチームからの詳細情報はこちらWeb Proxy構成の理解とこの回答はIE11の変更を反映するために更新されました。
GAThrawn

4

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

代替テキスト

説明:

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

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

特徴:

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

2
ネットワーク構成プロファイルほど有用なものがWindows 7に含まれていないことは信じられません。Ubuntuにはありますが、Mac OS Xにはあります。。。
dreamlax

私は、Dellが私の緯度のためにそのようなツールを作ったけど、私はそれを嫌い:-(
イヴォFlipse

ダウンロード版は、Windows用に動作しない/
ハカンForss

@IvoFlipse呼ばれたものを思い出せますか?
マティスデュトワ

@MatthysDuToit私はできません
Ivo

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.