是否可以使用 dnsmasq 覆盖单个域名?

是否可以使用 dnsmasq 覆盖单个域名?

我有一个服务器应用程序,其中运行两个实例,即生产和开发,即:

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

..这确实有效,但它的副作用是阻止所有其他域解析。

我怎样才能鱼与熊掌兼得呢?

答案1

将此行添加到/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

相关内容