web-dev-qa-db-ja.com

独自のhostsファイルを備えたブラウザ?

私は、アクセスするために常にhostsファイルを変更する必要があるステージングサーバーとテストサーバーをいくつか持っています(ドメイン名に依存しているため、機能させるためにhostsファイルを変更する必要があります)。

私はこれが不愉快だと思います。処理したいサイトの種類ごとに、ある種のポータブルブラウザをセットアップしたいのですが。これを行うグラフィカルWebブラウザー(他のブラウザーのレンダリングエンジンに基づくブラウザーを含む)のバージョンはありますか?

このようにして、ステージングをテストしたい場合は、ステージングで動作するようにすでに構成されているインスタンスを単に起動できます。

何か案は?

編集:重要な機能は、2つのブラウザーを同時に実行して、両方がsome-address.comを参照する機能ですが、1つのブラウザーが1.2.3.4のサーバーに要求を送信し、もう1つのブラウザーで5.6.7.8にあるサーバーにリクエストを送信します。

編集:(3/16/14)

この質問は数年前に尋ねられましたが、私はまだこれを行うための適切な方法を知りません。人々が問題を誤解しているように見えるので、私はさらに説明しようと思います。これは、プロキシサーバーを使用するだけで簡単に修正できるものではありません。問題を解決するためにプロキシサーバーで広範なルールを作成することは可能かもしれないと思いますが、これは単純な問題であるはずの問題に対する非常に複雑な解決策です。

明確にするために:

3つのWebサーバーがあります。生産、テスト、および開発。それぞれが、アクセスに使用されるホスト名に基づいて自身をカスタマイズするマルチテナントアプリケーションを実行します。概念的には、これは複数のサイトを同じサーバーインスタンスから実行できるコンテンツ管理システムまたはブログエンジンに似ています。ホスト名をサーバーにポイントするだけで、HTTP 1.1ホスト名マッピングを介してそれにアクセスするために使用されるホスト名が表示されるサイトになります。

異なるサイト、プロダクション、開発、テストなどに対して同時に複数のブラウザウィンドウを実行する必要があるため、Hostファイルを単に書き換えるソリューションは機能しません。したがって、Hostファイルを常に変更するだけでは、すべてのブラウザインスタンスに影響を与えるため、機能します。 1つのブラウザーのマッピングを変更すると、他のブラウザーもそのサーバーにマップされるため、後続の要求は間違ったサーバーに送られます。

私が探しているのは、コマンドラインパラメータなどを使用して、このブラウザインスタンスにこのホストファイルを使用させ、そのブラウザインスタンスにそのホストファイルを使用させる方法です。ブラウザの複数のコピーをインストールする必要があるかどうかさえ気にしません。

インストールされたコピーごとに独自の設定ファイルを使用すると思うので、これはFirefoxポータブルで実行できる可能性がありますが、問題は、サイトの管理に使用されるサードパーティソフトウェアがFirefoxで機能しないことです(サイト自体は機能しますが、管理ツールしないでください。これらはchrome and IE and Opera、..で正常に動作します。また、これを修正するためのソースへのアクセス権がありません)。

37

Squidが問題を解決してくれました。多くのプロキシサーバーでも同じことができると思います。

具体的には、Squidをインストールする必要がありました。次に、squid.confを変更して、代替のhostsファイルにアクセスできるようにします。これは変更したい行です:

#hosts_file /etc/hosts

私の場合、hosts_file /etc/hosts-squidを使用しました。 /etc/hosts-squidファイルを作成し、hosts-squidファイルを変更して、指定したURLに必要な新しいIPアドレスにアクセスできるようにしました。 Squidプロキシサーバーを構成するために必要なのはそれだけでした。

次に、プロキシ設定を使用してブラウザを起動するコマンドを作成しました。私が使用した:

chromium-browser --proxy-server=localhost:3128

このコマンドを実行すると、作成したhosts-squidファイルで設定されているドメインにアクセスできるchromiumのインスタンスが効果的に実行されます。

また、Squidの複数のインスタンスを使用してより多くのプロキシサーバーをセットアップし、同じコンピューター上のすべての製品、開発、ローカルのWebサイトにアクセスすることもできました。複数のSquidインスタンスを実行する方法についての説明は here です。私は ブログ投稿 も書いて、問題と解決策をもう少し詳しく説明しました。

19
Dave Parrish

独自のホストファイルを含む各ブラウザの仮想環境をセットアップするように求めていると思います。

1つの解決策は、 Sandboxie を使用して、それぞれが独自のホストファイルを含む個別のサンドボックスを設定することです。 hostsファイルを使用するためにブラウザをサンドボックスにインストールする必要はなく、サンドボックス内から起動するだけです。サンドボックス内からブラウザーを起動するためのデスクトップショートカットを作成できます。

欠点は、たとえばインターネットからファイルをダウンロードするときに、ブラウザーが実際のファイルシステムから分離されることですが、Sandboxieには、そのようなファイルをサンドボックスの外部にコピーするメカニズムが含まれています。

残念ながら、同時に複数のサンドボックスでプログラムを実行する機能は、Sandboxieの有料バージョンでのみ利用できます(15ユーロ、自宅での個人使用の1年間のライセンスには税金がかかります)。実現可能性テストは無料版を使用して行うことができます。

Linuxユーザーの場合、同様の製品は次のとおりです。

8
harrymc

firefox + HostAdminでホストファイルの変更プロセスを自動化できます。

HostAdminは、ホストファイルの変更、ドメインとIPのマッピングの切り替えを支援するFirefoxアドオンです。 HostAdminは、拡張されたHostsファイル構文を介してHostsファイルを理解できます。さらに、HostAdminは、Hostsファイルを手動で変更しても、DNSキャッシュを自動的に更新します。

設定例

#==== Project 1
# 127.0.0.1 localhost1
127.0.0.1 localhost2
127.0.0.1 localhost3
#====
#==== Project 2
# 127.0.0.1 localhost1
# 127.0.0.1 localhost2
# 127.0.0.1 localhost3  

詳細は https://addons.mozilla.org/en-US/firefox/addon/hostadmin/ にあります

複数インスタンス

Firefoxで2つのインスタンスのFirefoxを同時に独立して実行するには、次のスクリプトを使用して複数のランチャーを作成します。また、すべてのFirefoxにプラグインをインストールします。

Firefox 1

#!/bin/bash
th="/home/$USER/tmp/p1"
mkdir -p "$th"
export HOME="$th"
firefox -no-remote

Firefox 2

#!/bin/bash
th="/home/$USER/tmp/p2"
mkdir -p "$th"
export HOME="$th"
firefox -no-remote  

プロファイルオプション(firefox -P)ブラウザーでネイティブプロファイルを使用してさまざまな設定を行い、同時に使用することができます。

4
totti

これがあなたが求めているものではないことはわかっていますが、一時的な解決策は、ホストファイルを交換してからブラウザを起動するバッチスクリプトを作成することです。

少なくともそれはあなたがしている仕事を最小限にするでしょう。

または、これらのサーバーにhostsファイルでまったく異なる名前を付けるだけで、最初から切り替える必要はありません。

2
Chris Harrod

Privoxy はこの目的に使用できます。

1
Tamara Wijsman

これが十分に便利かどうかはわかりませんが、考えられる解決策の1つは、ブラウザを備えたマシンにIISをインストールし、サーバーサイドスクリプト(ASP.net、PHP、Rubyなど)を提供することです。 ...)hostsファイルを変更し、実際のページにリダイレクトします。ブラウザで、そのスクリプトへのブックマークを作成します(例:http://localhost/config_ie.rbは、hostsファイルを変更し(もちろん、そのファイルに対する正しい権限が必要です)、実際のページに対して302リダイレクトを実行します。

1
Michael Kremser

完全なVMが多すぎる場合、コンテナーベースのソリューションで問題が発生する可能性があります。

ここでLinuxについて話している場合、lxcは実行可能なソリューションかもしれません。

それとは別に-フルVMでも、それほど大きくなく(最大2 GBのディスク)、最近のハードウェアではそれほど多くのリソース(最大512 MBのRAM)を消費しません) ...

Lubuntu VMここで行うかもしれません。

1
Nils

残念ながらOPはFirefoxを使用できません。できる人にとって、これは部分的な解決策です:

ChromeとFirefoxの両方に、ブラウザでドメインをIPにマッピングできる拡張ホストLiveHostsがあります。これにはいくつかの制限がありますが、完全ではありませんが、 ChromeではIP xx.xx.xx.xxでexample.comのWebページをテストしますが、Firefoxではexample.comにアクセスするとIP yy.yy.yy.yyになります。

ここにリンクがあります:

Chrome LiveHosts

Firefox LiveHosts

0
Noel Swanson

比較的単純なソリューションの1つ(ただし、リソースが少し重いかもしれません)は、ホストでいくつかの仮想マシンを実行することです。独自のホストファイルを持つ各仮想マシン。

したがって、ステージング環境用に1つ、製品用に1つなどの仮想マシンが1つあります。

0
Pete