Google Chrome で拡張機能を使わずにProxy 自動切り替えを実現する方法。

Firefox では、Proxy 切替アドオンで接続先に応じてProxy の切り替えをしていたが、
Chrome ではOS(Internet Explorer) の設定を利用するため、
普通に考えると特定のProxy を通すか、Proxy を通さないかしか選択肢が無い。

そこで、Proxy の自動構成スクリプトを使った設定方法をメモ。

スクリプトの書式はproxy.pac というキーワードで検索するといくつか出てくる。
以下は実際に利用しているスクリプトの一部を改変したもの。

function FindProxyForURL(url,host) {
  if(shExpMatch(host,"*.hoge.jp"))     return "PROXY localhost:8080";
  if(shExpMatch(host,"*.fuga.net"))    return "PROXY localhost:8080";
  if(shExpMatch(host,"*.example.jp"))  return "PROXY localhost:8080";
  if(shExpMatch(host,"*.hogefuga.jp")) return "PROXY localhost:8080";
  if(shExpMatch(host,"*.example.net")) return "PROXY localhost:8080";
  return "DIRECT";
}

shExpMatch 関数で、変数host に入った文字列をマッチングをして、
合致したURL がリクエストされた場合は、localhost:8080 のProxy を使う。
リクエストされたURL がどれにもマッチしなかった場合は直接接続する。

スクリプトを適当な場所に保存しておき、
「インターネットオプション」→「接続」タブの「LAN の設定」ボタンで、
「自動構成スクリプトを使用する」にチェックを入れ、
「アドレス」に、「file://C:/foobar/proxy.pac」などと指定する。
20090928_6b90ab85cd1e58f37b5e6753d49d2e95
ファイルシステム上のファイルの指定でも、URL 形式で書くのが無難かな。

それからモバイル接続などでダイヤルアップ接続をしている場合は、
「接続」タブの「ダイヤルアップと仮想プライベートネットワークの設定」項で、
接続先を選択した上で「設定」ボタンを押して自動構成の設定をする。
20090928_cb37df7798eb8577dc7922927ad1daa5
この作業を忘れると、モバイル接続した時に意図したProxy に繋がらなくて悩む。

あとは、開いているブラウザ再起動すると、先ほどの設定が有効になっているはず。
意図した通りに繋がらないなど問題がある場合、スクリプトを見直しましょう。
これで接続先によってProxy の設定をし直す必要がなくなり、とっても楽ちんになりました。

おわり。


Web Geek's Guide to Google ChromeWeb Geek's Guide to Google Chrome

Que 2009-06-19
売り上げランキング : 251082

Amazonで詳しく見る
by G-Tools