我有一个服务器应用程序,其中运行两个实例,即生产和开发,即:
prod.example.com (10.0.0.1)
dev.example.com (10.0.0.2)
第三方编写了一个客户端应用程序,该应用程序已被硬编码为指向prod.example.com
。但我希望这些请求发送到服务器dev.example.com
,而我无权访问第三方源代码。
我确实可以(暂时)访问客户端和服务器正在运行的 LAN,因此我可以使用它来dnsmasq
解析,此时我的工作就完成了,并且客户端应用程序将(不知不觉地)与开发服务器对话(或者我是这样认为的)。prod.example.com
10.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