web-dev-qa-db-ja.com

特定のドメインにサービスを提供するサーバー機能のテスト

お気に入りのウェブサーバーデーモンでServer Aを設定してwww.example.comを提供するとします。これをServer Bに移動します。たくさんのコピーと設定を行った後、新しいサーバーは準備ができているようです。 DNSレコードを変更する前に、DNSレコードがまだサーバーAを指しているときに、サーバーBにwww.example.comをどのように要求しますか?


私の主な質問には回答しましたが、/ etc/hostsが私の影響下にない場合は、代わりに生のHTTP1.1をWebサーバーと通信することにより、Telnetでテストできますか?

11
Jarmund

DNSは魔法のようなものです。クライアントPCを十分に制御することで、right.comwrong.comおよびviceversa.ioにすることができます。テストクライアントPCにジャンプし、そのクライアントのホストファイルを変更してDNS解決策を試してみるか、もう少し複雑なことを実行して、そのホストにdnsmasqのような単純なDNSサーバーにクエリを送信することができます。どちらの方法でも、最終的な目標は、www.example.comに関するクエリのDNS応答がサーバーBのIPアドレスで応答するようにすることです。HTTPホストヘッダーには、www.example.comのDNS名が付けられます、ただしサーバーBを対象としています。

マジック!

12
Wesley

このようなHTTPのテストを行うために重要なことは、実際にはDNSとはまったく関係ありませんが、HTTPクライアントがHostヘッダー値として送信するものに注意することが重要です。

クライアントは正しいIPアドレスとポートに接続する必要がありますが、それを超えると、HTTPリクエスト自体にインライン化されているHostヘッダーにすべて到達します。


簡単なテストのために、クライアントのオペレーティングシステムレベルの設定を変更せずに次のコマンドを使用できます。

$ curl -H "Host: www.example.com" http://192.0.2.17/foo/bar

または、さらに言えば、

$ curl -H "Host: www.example.com" http://beta.example.com/foo/bar


通常のWebブラウザーで同じことを行うには、要求ヘッダーを変更できるブラウザー拡張機能(またはヘッダーを変更するHTTPプロキシ)が必要か、クライアントマシンの構成を変更する必要があります。オペレーティング・システム。

すでに述べたように、このような構成変更を行う最も簡単な方法は、hostsファイルにエントリを追加することです。このようにして、クライアントOSリゾルバーライブラリは、hostsファイルを参照するときにすでにヒットし、DNSルックアップを実行する必要さえありません。

その他のオプションには、クライアントで構成されたDNSリゾルバーサーバーを、必要に応じて応答するように設定されているネームサーバーに変更することが含まれます。

11

これはtelnetでテストできます。コマンドを入力して、生のHTTPリクエストを作成する必要があります。間違いを犯すことはできず、一部のサーバーにはタイムアウトがあるため、その時間内にリクエスト全体を入力する必要があります。

コマンドは次のようになります。

telnet serverb 80

リクエストは次のようになります。

GET / HTTP/1.1
Host: www.example.com

空白行で終了する必要があるので、ホストヘッダーの後にEnterキーを2回押すことに注意してください。

4
briantist

動作するかどうかを確認する必要がある場合は、Firefox用のModify Headersのような単純なブラウザプラグインをアドバイスし、Hostwww.mydomain.comに変更します。

3
bukk530

私が通常行うことは、www.example.comに/ etc/hostsのサーバーBのIPアドレスを強制することです。私はMosaicを使用して以来、それを行ってきましたが、使用頻度が低いため、より良いものを見つける必要性を感じていません。

あなたのために少し見てみると、私は https://superuser.com/questions/403042/custom-Host-file-for-firefox を見つけました https:// addons .mozilla.org/es/firefox/addon/foxyproxy-standard / ですが、放棄されたという非常に最近のメモがあります。

3
Law29