接続するネットワークに応じてプロキシ設定を変更する方法は?


20

私の会社の企業ネットワークでは、ネットワークプロキシを設定してネットにアクセスする必要がありますが、他の場所にいるときは必要ありません。Ubuntuのプロキシ設定([システム]-> [設定]-> [プロキシサーバー])を使用して、手動で選択できる「場所」を作成できました。それから、「デフォルト」の場所(プロキシなし)と「職場」の場所(会社のプロキシあり)があります。

私が使用している接続に基づいて、Ubuntuが自動的に「職場」の場所を選択するようにする方法はありますか?IPサブネット(非常に具体的な)を使用して現在地を検出できると思ったが、設定方法がわからない...

編集:システムレベルでプロキシ設定を設定する必要が本当にあります。すべてのネットワーク接続(IMAP、SMTP、チャットなど)はプロキシを経由する必要があります。Webブラウザだけではありません。

回答:


7

私は1つの方法を考えることができますが、それを設定することは少しあいまいです。

基本的には、PACファイルを使用できます

システムにWebサーバーをインストールすれば、どんな小さなWebサーバーでも実行できます。Apacheのような巨大なシステムは必要ありません。

wpad.dat送信元アドレスに基づいて一致するPACディレクティブを含むファイルを作成し、正しいプロキシを使用するようにシステムを構成します。

firefoxで、ローカルPACファイルを指すようにプロキシを構成します。たぶんそれは次のようなものでしょうhttp://localhost/wpad.dat

PACファイルは、このように見える場合があります(未テスト)。その他のPACの例については、こちらをご覧ください。

function FindProxyForURL(url, host) {   
  // If on a internal/LAN IP address, send traffic direct.
  if (isInNet(myIpAddress(), "10.10.1.0", "255.255.255.0"))
  {        
    return "PROXY 1.2.3.4:8080; PROXY 4.5.6.7:8080; DIRECT";
  }
  else
  {
    return "DIRECT";
  }
}

私はそれを試したことがなく、テストするシステムにいませんがfile://、FirefoxのURL を使用してPACファイルを指定できる場合もあります。これは、Webサーバーのセットアップをスキップできることを意味します。

もちろん、迅速で簡単な解決策もありますが、場所を移動する際に少し手間がかかります。Firefox のクイックプロキシ拡張機能をインストールし、ツールバーのボタンをクリックして、プロキシのオンとオフを切り替えます。Firefoxの拡張機能でこれに対処する場合は、FoxyProxyを試すこともできます。これは複数のプロキシプロファイルの設定をサポートし、プロファイルを簡単に切り替えることができます。


興味深い...テストする必要があります。どうなるかお話しします。ただし、Firefox拡張機能は機能しないと思います。プロキシはHTTPだけでなく、すべてのプロトコルに使用されます。それから、共感、進化、すべてのためにも必要です。
リトルジャワ

ああ、もう一つ。IT担当者にWPADのセットアップを依頼できます。次に、自動プロキシオプションを使用します。
ゾレダチェ

まあ... ITに何でもさせることは、私が恐れている選択肢ではありません。リクエストはできますが、何も起こりません。ビジネス上の理由がないため、それを行うためのリソースがありません。そして、私は正当化を書き留めるよりも自分でそれを行う方が速いでしょう:-)
リトルジャワ

OK。もう少し読んだ後、私はこの解決策に満足していません。動作するようです(実装を試みていません)が、システム全体では使用できません。(findproxyforurl.com/index.htmlによれば)システムはWebブラウザーでのみサポートされているため(Javascriptに依存しているため)、Webブラウザーでのみ機能します。
リトルジャワ

5

Ubuntu 10.10では、.pacスクリプトが適切に機能します。Zoredacheが説明したように、Webサーバーをセットアップし、そこにpacファイルを配置し、[システム]-> [設定]-> [ネットワークプロキシ]を開き、「自動構成URL」をpacファイルの場所に設定します。

自分のIPアドレスをチェックするPACファイルの例:/var/www/selectProxy.pac:

function FindProxyForURL(url, host)
 {
 if (myIpAddress() == "192.168.22.63") { 
 return "PROXY 192.168.22.8:8080";
 }
 else {
 return "DIRECT";
 }
 }

ネットワークプロキシ設定:URLは次のようになります。

http://localhost/selectProxy.pac

3

Zoredacheの答えに加えて、/ etc / network / if-up.dのスクリプトを使用して、プロキシシェル変数を含むスニペットを/etc/profile.d/に生成できます。これは新しいシェルでのみ機能することに注意してください。

さらに、このメソッドはWPADファイルを生成するために使用される場合があり、これをサポートするブラウザーを指定できます。


2

これはかなり古い記事ですが、私はこれを見つけました。ご覧くださいhttp : //marin.jb.free.fr/proxydriver/

Ubuntu用に提供されている.debパッケージをインストールできます。これは基本的に、ネットワークが変更されたときに環境変数を変更するシェルスクリプトです。で作成された構成ファイルを(自動的に)編集することにより、各ネットワークの設定を構成できます。/etc/proxydriver.d/


2
これは理論的には質問に答える可能性がありますが、答えの重要な部分をここに含め、参照用のリンクを提供することが望ましいでしょう
エリアケイガン

0

私は同じ問題を抱えています。回答を一般化して、私の状況を含めてください。

自宅のワイヤレスでラップトップを使用しています:-常にeth1インターフェイスの静的IPアドレス(192.168.1.10)

私が仕事に行くとき、私はそれを差し込みます:-常にeth0インターフェイスの動的IPアドレス(10.10.xx.xx)、およびプロキシ:10.10.123.123ポート8888

Ubuntuは、使用しているインターフェイスに基づいてIPアドレスとプロキシを自動的に設定します。

(/ etc / network / interfacesをいじりました[「man interfaces」と/etc/resolv.confを参照してください。


1
私の理解:あなたのWifiカードには静的IPがあります-それは既に「自動的に」設定されています。そして、あなたの有線ネットワークはDHCPによって設定されます-これも自動です...それから、IP設定に関して、あなたはそれに何を追加しますか?プロキシの必要性は理解していますが、IPは理解していません。
リトルジャワ

あなたが知っている、私はあなたが正しいと思う。holdiaysの後、仕事に戻りましたが、自動的に機能しているようです。唯一の問題はプロキシだと思います。明日さらに調査します。

0

私はPACファイルアプローチを使用しており、ブラウジングには適していますが、PACファイルを理解していない他の多くのアプリケーションにはあまり適していません。 PACファイルのURLを使用している場合は元に戻します。

プロキシサポートを持たない、またはPACファイルを理解しない(Empathyなど)ユーザーアプリケーションの場合、tsocksを使用します(プロキシサポートにSSHトンネルを使用するため)。

JavaScriptエンジンまたはPACパーサーを基本的なプロキシ設定をサポートするすべてのアプリケーションにリンクすると、やり過ぎのように見えます。これは、PACファイルを実際に解釈し、URLの代わりに結果を返すAPI呼び出しを使用して、基盤となるプラットフォームサポートの恩恵を受けるケースのようです。


0

これはこの時点では古い投稿ですが、これを行う方法を探してここに来て、別の答えを見つけました。私が取り組んでいる答えは「whereami」というパッケージにあり、detect.confファイルで作業のサブネットを定義し、whereami.confファイルでプロキシサーバーを定義する必要があります。動作するはずです。問題がある場合は投稿します。

がんばろう!


1
Ask Ubuntuへようこそ!だから...実際に誰かがこれをどのように行うのでしょうか?指示を提供できますか?現時点では、これは質問に対する答えではありません...
エリアケイガン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.