独自のホストファイルを持つブラウザ?


36

アクセスするためにホストファイルを絶えず変更する必要があるステージングサーバーとテストサーバーがいくつかあります(これらはドメイン名に依存するため、ホストファイルを変更して動作させる必要があります)。

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

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

何か案は?

編集:重要な機能は、2つのブラウザを同時に実行する機能です。どちらのsome-address.comブラウザもにアクセスしますが1.2.3.4、一方のブラウザはにサーバーにリクエストを送信し、他方のブラウザはにサーバーにリクエストを送信し5.6.7.8ます。

編集:(3/16/14)

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

明確にするために:

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

ホストファイルを単純に書き換えるソリューションは、複数のブラウザーウィンドウを異なるサイト、生産、開発、テストなどで同時に実行する必要があるため機能しません。したがって、単にホストファイルを常に変更することはできません。すべてのブラウザインスタンスに影響するため動作します。あるブラウザのマッピングを変更すると、他のブラウザもそのサーバーにマッピングされるため、以降のリクエストは間違ったサーバーに送信されます。

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

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


あなたの状況のほとんどの人は、異なるHOSTS構成でいくつかのWinXPまたはUbuntu仮想マシンを実行します。
digitxp

@digitxp-はい、私はすでにそれを考えていましたが、私は本当に複数のVMといくつかのOS全体のオーバーヘッドがいくつかのサイトを閲覧するだけで欲しくありません。明らかに、私はおそらく行う必要があるでしょう何が...他に選択肢がない場合は
エリックFunkenbusch

他のすべてが失敗した場合:フィドラーのWebデバッガ(Windows)またはGlimmerBlockerチャールズのWebデバッグプロキシ(Macの場合)...その場でリクエストを書き換えることができます
Arjan

@Arjan-プロキシはある程度機能しますが、ブラウザインスタンスごとに個別のプロキシインスタンスを用意するか、毎回プロキシ設定を変更する必要があり、ホストファイルの変更はさらに面倒です。
エリックファンケンブッシュ

1
おそらく、squidのようなWebプロキシを使用すると、DNS解決から必要なことを行う方法でリダイレクトできますか?(もちろん、Webプロキシは、ブラウザごとに設定することができる)
barlop

回答:


19

イカは私のために問題を解決しました。多くのプロキシサーバーで同じことができると思います。

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

#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インスタンスを実行する方法については、こちらをご覧ください。また、問題と解決策についてもう少し詳しく説明したブログ記事を書きました。


8

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

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

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

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

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


返信が遅れてごめんなさい。プログラムが%SYSTEM32%/Drivers/etc/hostsWindowsや/etc/hostsLinuxのようにサンドボックス化されたシステムファイルを提供することを許可するかどうかは明確ではありません。確認してもらえますか?数年前にWindowsでSandboxieの簡単なセキュリティ評価を行ったので、Linuxバージョンの方が好きです(失敗し、作者へのレポートは未回答になりました)。
jww 14年

Sandboxieがのようなサンドボックスごとのシステムファイルをサポートしている場合%SYSTEM32%/Drivers/etc/hosts、ポイントはあなたのものです。OSは仕様が不十分であり、Windows / Sandboxieが動作する場合、OSを保留することは公平ではありません。
jww

AFAIK Sandboxieは、完全に並列なファイルシステムとレジストリを作成します。Linuxの場合、単純なサンドボックスプログラムはarkoseまたは多分sandfoxですが、私はそれらの経験がありません。
ハリーマック14年

ありがとう、harrymc。ポイントの授与に問題があります。+50のボックスが表示されますが、クリックできません。さらに、100の価値があると思いました。何かアイデアがありますか(またはMetaに移動する必要がありますか)。
JWW

賞金に関するよくある質問をご覧ください:100の賞金のうち、半分は指定された回答なしで7 + 1日後に自動的に授与され、半分は失われました。
ハリーマック14年

4

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

HostAdminはFirefoxのアドオンで、Hostsファイルの変更、ドメインIPマッピングの切り替えに役立ちます。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/をご覧ください

複数インスタンス

Linuxでfirefoxブラウザーの2つのインスタンスを同時に独立して実行するには、次のスクリプトで複数のランチャーを作成します。また、すべての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ブラウザでプロファイルオプション()を使用して、異なる設定にネイティブプロファイルを使用し、同時に使用することができます。


1
彼は、同時に 2つのホストファイル使用する2つのブラウザを要求しています。
harrymc 14年


@harrym cが更新されました。
トッティ14年

2

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

少なくとも、あなたがしている仕事を最小限に抑えるでしょう。

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


Webアプリケーションは適切なコンテンツを表示するためにホスト名に依存しているため、名前を変更することはできません。また、私がこれをしたい理由は、複数のブラウザを同時に実行し、1つをステージングに、もう1つを開発者に送ることができるからです。hostsファイルを交換することではできません。
エリックファンケンブッシュ

@MystereMan:META BASEについて話している場合は、サーバー側でブラウザー検出を行うだけです。あなたは...他のどのURLに独自のホスト名を持つべきではない
タマラWijsman

@TomWij-いいえ、META BASEの話ではありません。IPベースではなく、ホストベースの仮想ホスティングについて話しています。ホスト名フィールドは、アクセスするサイトを決定します。
エリックFunkenbusch

@MystereMan:この答えに対する最初のコメントは意味をなしません。「適切なコンテンツをレンダリングするWebアプリケーション」についてお話ししているように、仮想ホストがそれとどう関係しているのかわかりませんか?
タマラWijsman

@TomWij-単一のIPを持つ単一のサーバーで複数のサイトをホストするマルチテナントCMSシステムがあります。特定のサイトを表示するには、ホスト名を使用する必要があります。そうでない場合は、デフォルトのインスタンスにのみアクセスします。このサーバーの運用バージョン、ステージングバージョン、および開発バージョンを切り替える必要があります。つまり、ドメイン名のIPアドレスへのマッピングをオンザフライで変更する必要があります。私はこれをホストファイルで行うことができますが、それは物事をグローバルに変更するため、2つの異なるブラウザインスタンスでステージングとプロダクションの同時コピーを開くことができません。
エリックFunkenbusch

1

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


正確に、この目的のためにPrivoxyはどのように機能しますか?ほとんどのブラウザでは、インスタンスごとにプロキシを定義することはできませんので、それだけで別のローカルプロキシサーバー、作品のどれものように見えます..あなたはすべてのインスタンスのグローバルプロキシ定義することができます
エリックFunkenbusch

@MystereMan:リクエストをプロキシし、リクエストを他のリクエストに操作します。それはとても簡単です。Mirosoft Internet Explorer(GUI)、Mozilla Firefox(GUI)、Google Chrome(CLI --proxy-server =)、Apple Safari(GUI)、Opera(GUI)およびその他のブラウザー(GUIまたはCLI)は...あなたはあなた自身のプロキシサーバーを設定することができます
タマラWijsman

@TomWij-いいえ。IE、Chrome、およびSafariはすべて、「インターネット設定」のグローバルプロキシサーバー設定を使用します。つまり、1つのWebブラウザーで変更すると、すべてのWebブラウザーで変更されます。Firefoxにはこのための独自の設定がありますが、残念ながら、使用しているCMSで動作しないため(他のすべてが動作するため)Firefoxを使用できません。
エリックFunkenbusch

@Mystere Man:間違っています。考えを繰り返すのをやめて、代わりに各ブラウザがどのような構成を提供しているかを確認してください。あなたが実際にドキュメントを読む努力を費やしていないなら、あなたは他の人々には当てはまらないあまりにも具体的な何かを求めているので、あなたは問題を解決することができません。前にも言ったように、あなたは読んでいないようです:どのブラウザでも、そのブラウザにプロキシサーバーを設定できます。Google ChromeはCLIパラメーターを提供します--proxy-server=
タマラWijsman

1
うーん、Safariをしばらく使用しなかったので間違っているかもしれません。しかし、私はあなたを誤解したと思います、なぜあなたはすべてのブラウザに異なるプロキシサーバーを持ちたいのですか?「x.com = production; stage.x.com = staging; dev.x.com = development」のようなものが、サーバー上で単一のIPおよびホストヘッダーリダイレクトを指定しただけでは機能しない理由として、私は混乱しています...
タマラウィスマン

1

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


1
ほとんどの人がこれについて理解していない部分は、効果的に機能するために、異なるホスト/ IPマッピングを使用して複数のブラウザーを同時に実行できる必要があるということです。たとえば、実稼働インスタンスとテストおよびデバッグインスタンスの両方を異なるブラウザーインスタンスで開く必要があります。それぞれが同じホスト名を使用する必要があります(HTTP 1.1ホスト名マッピングはホスト名に基づいて正しいサイトをマップするため)。ホストファイルを変更するだけの場合、ブラウザのすべてのインスタンスは、単一のインスタンスだけでなく、新しいサーバーにマップされるようになります。
エリックFunkenbusch 14年

@Erik Funkenbusch:説明をありがとう。さて、私の残りのアイデア:a)1つの概念は、Windowsで「データリダイレクト」と呼ばれるファイルシステム仮想化のようなものを使用することです。たぶん、あなたはあなた自身の目的のためにそれを使用することを可能にするいくつかのオプションがあります。その後hosts、すべてのプロセスにカスタムファイルを作成できます。b)ローカルでのDNSインターセプト:「iexplore.exe」などからの要求は、指定したリストに従って操作できます。-好きなアイデアはありますか?
マイケルクレムサー14年

1

フルVMが多すぎる場合は、コンテナベースのソリューションで十分かもしれません。

ここでlinuxについて話しているのでlxcあれば、実行可能なソリューションかもしれません。

それとは別に-最小のX11-linuxを備えた完全なVMでさえ、それほど大きくなく(最大2 GBのディスク)、最近のハードウェアではそれほど多くのリソース(最大512 MBのRAM)を消費しません...

A LubuntuVMはここで行うことがあります。


RAMが見つかり、処理は問題ありません。共有ディスクは、システムに障害をもたらします。
jww 14年

0

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

したがって、ステージング環境用に1台、prod用に1台の仮想マシンがあります。


おそらく、質問の下の最初の2つのコメントを読む必要があります。これは4年前に対処されました。
エリックFunkenbusch 14年

実際、私はコメントを見ましたが、この回答を投稿するまではそうではありませんでした。しかし、同じタイプの問題を抱えている他の人々を助けることができるので、(単なるコメントではなく)別個の答えとしてそれを持っていることはまだ理にかなっていると思います。
ピート14年

共有ディスクのボトルネックにより、2つのVMがほとんどのワークステーションを動作不能にします。VMが1つ開いていると少し苦しみます(1つはデュアルクアッドコアを備えた最新のMac Mac Book Proです。2つ目はシングルクアッドコアを備えた最新のASUSラップトップです)。2つのVMには苦痛が伴います。
jww 14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.