我想在自定义位置(例如 /opt/app/hosts)创建一个主机文件,其格式与 /etc/hosts 文件相同。
原因是我想手动查询 DNS 服务器以获取特定范围的主机,并将这些主机写入我自己的自定义主机文件。我无法将该 DNS 服务器添加到 /etc/resolv.conf,因为我不想让服务器尝试使用它来解析主机(除了我手动查询的一小部分)。
我尝试寻找将其包含在 /etc/hosts 中或在 /etc/nsswitch.conf 或 /etc/resolv.conf 中对其进行配置的方法,但据我所知,这两个配置文件都不包含。
答案1
您可以设置 BIND 将特定域的请求转发到特定的 DNS 服务器:
zone "some.domain"
{
type forward;
forwarders { 10.0.0.1; };
};
所有其他请求都将转发到全局options::forwarders
部分中指定的服务器。这可能是实现您想要的最佳方式。
答案2
域名系统可以做到这一点(甚至更多);除了常规 hosts 文件和 DNS 之外,它还允许您使用任何本地名称数据库,只需一个简单的切换:
dnsmasq -H /opt/app/hosts