web-dev-qa-db-ja.com

dnsmasqを使用して単一のドメイン名を上書きすることは可能ですか?

本番環境と開発環境の2つのインスタンスを実行しているサーバーアプリケーションがあります。

prod.example.com (10.0.0.1)
dev.example.com (10.0.0.2)

サードパーティが、prod.example.comを指すようにハードコードされたクライアントアプリケーションを作成しました。しかし、これらのリクエストをdev.example.comサーバーに送信したいので、サードパーティのソースコードにアクセスできません。

クライアントとサーバーが実行されているLANに(一時的に)アクセスできるので、dnsmasqを使用してprod.example.com10.0.0.2に解決できます。この時点で、ここでの作業は完了です。クライアントアプリケーションは(無意識のうちに)開発サーバーと通信します(またはそう思っていました)。

次の設定をdnsmasq.confに追加するところまで来ました。

address=/prod.example.com/10.0.0.2

..これは機能しますが、他のすべてのドメインが解決されないという副作用があります。

どうすればケーキを食べて食べることができますか?

2
Matthew

この行を/etc/dnsmasq.confに追加します。

addn-hosts=/etc/dnsmasq.hosts

次に、ドメイン名を/etc/dnsmasq.hostsに挿入します。

10.0.0.1  prod.example.com.
10.0.0.2  dev.example.com.

ドメイン名の末尾のピリオドを忘れないでください。ローカルホスト名ではなく、TLDとしてマークします。

いつものように、構成を変更した後、dnsmasqを再起動します。

Sudo service dnsmasq restart
2
FlippingBinary