ローカルDNSリゾルバにエントリを追加する方法[終了]


19

Linuxでいくつかのテストを行いたいです。IP:1.2.3.4(仮定)のマシンに小さなWebサーバーを配置し、特定のURLに対してDNSクエリが作成される場合:kitty.myweb.comこのIPアドレスを返します。

シナリオ:

  1. ブラウザ(firefoxなど)を開くと、URL kitty.myweb.comを入力すると、ブラウザがDNSクエリを実行します
  2. kitty.myweb.comのDNSクエリを実行するプログラムを書きたい

各コンピューターには、いくつかのエントリをキャッシュするローカルDNSリゾルバーがあります。URLを呼び出すと、最初にローカルDNSリゾルバーが照会され、対応するエントリがない場合は、LANまたはインターネット上の外部DNSリゾルバーに照会が送信されます。

私がしたいのは、ローカルDNSリゾルバにエントリ(kitty.myweb.com:1.2.3.4)を追加することです。これにより、上記の2つのシナリオでは、外部クエリを行うことなくDNS応答が1.2.3.4になります。

Linuxでこれを行うことは可能ですか?おそらくこれを行うCコードスニペットがありますか?

回答:


30

/ etc / hostsを使用してエントリを追加できる場合があります。これは実際にはDNSを使用していませんが、ほとんどのアプリケーションで使用されているLinuxのリゾルバーライブラリに影響します。追加:

1.2.3.4 kitty.myweb.com

別のオプションは、単純なDNSサーバーをシステムにインストールすることです。私がよく使うものはdnsmasqと呼ばれます。一部のディストリビューションでは、デフォルトでキャッシングリゾルバーとしてインストールされます。この場合、設定を変更するだけで次を含めることができます。

address = / kitty.myweb.com / 1.2.3.4

独自のDNSサーバーを実行している場合は、おそらくLinuxリゾルバーライブラリで使用される/etc/resolv.confで遊ぶ必要があります。リゾルバライブラリにローカルDNSサーバーを参照させるには、resolv.confにエントリが必要です。

ネームサーバー127.0.0.1


9

ローカルホストに単一のDNSエントリを追加する最も簡単な方法は、それをhostsファイルに追加することです。そのファイルの場所はディストリビューションごとに異なる場合がありますが、従来の場所は次の/etc/hostsようになります。

:: 1 localhost localhost.yourdomain.tld
127.0.0.1 localhost localhost.yourdomain.tld
1.2.3.4 kitty.myweb.com

これは、ご使用のコンピューターにのみ影響し、適切にスケーリングされないことに注意してください。言い換えれば、単純なテストでは問題ありません。多くのコンピューターでホストファイルを編集しようとしないでください。そのためには、適切なDNSエントリが必要です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.