ルートアクセスなしで/ etc / hostsに書き込むのと同様のオーバーレイDNSを作成できます。

ルートアクセスなしで/ etc / hostsに書き込むのと同様のオーバーレイDNSを作成できます。

ブラウザが使用するDNSレコードを設定したいのですが、rootアクセス権がないため変更できません/etc/hosts。 DNSがまだ設定されていない仮想ホストをテストするためにApacheを使用するには、これを行う必要があります。私はFirefoxとChromeを使うことができるので、それを単純化するためのプラグインや役に立つ他のオプションがあれば。

修正する:DNSをオーバーライドする代わりに、HTTPヘッダーを変更する方法があります。正しいヘッダーがApacheに送信されたら、正しいコンテンツを返す必要があります。

答え1

テスト用に変更されたDNS検証を使用してプログラムを実行する方法を探しています。私にとって、解決策はHOSTALIASES環境変数を使用することでした。

$ echo "foo www.google.com" >> ~/.hosts
$ HOSTALIASES=~/.hosts wget foo

望むよりhostname(7)

(注:例では、HOSTALIASES環境変数はwgetプロセスにのみ影響します。もちろん、export HOSTALIASES現在のシェルのすべての子プロセスに影響を与えることもできます。)

答え2

libc関数の周りにラッパーを作成してホスト名を解決し、/ etc / hosts以外のファイルにあります。次に、ホストファイルを使用するアプリケーションを実行します。

LD_PRELOAD=wrapper.so firefox

答え3

私の考えの最善の方法は、SOCKS5プロキシを設定し、FirefoxにSOCKS5プロキシ(network.proxy.socks_remote_dns)を介してDNS要求を送信するように指示することです。 openssh(-Dオプション)を使用してocks5プロキシを非常に簡単に設定し、カスタム/ etc / hostsなどを使用してリモートホストを実行できます。DNSマスクより複雑なDNS設定の場合。ただし、実際には、システム全体を変更できるシステムにDNS設定構成をプッシュします。

答え4

仮想ホスティングをテストするには、Firefox で Apache サーバーをプロキシとして設定できます。入力した名前はApacheに渡されます。これにより他のウェブサイトの閲覧が中​​断されるため、完了したらプロキシをリセットしてください。

関連情報