我需要能够为多个网络提供特定的 DNS 服务器,并且我想知道如何正确更新我的/etc/resolv.conf
:
假设我有一个主要的 vpn,我通过它路由所有流量和 DNS 查询。但是我知道我有另一个 VPN,它为我提供了对网络的特定访问权限,该 VPN 也用作 DNS 服务器,但它只为特定域提供服务,比如说:“mydomain.local”
我构建了以下 resolv.conf:
nameserver 10.8.0.1
search mydomain.local
nameserver 10.250.0.2
但无论如何,DNS查询都会继续到第一个域服务器,改变顺序并不重要。
有人能给我一些建议吗?
答案1
仅使用是不可能实现的/etc/resolv.conf
。
我认为最简单的方法是安装(缓存 DNS 客户端),然后输入并修改配置dnsmasq
使其成为唯一的解析器:nameserver 127.0.0.1
/etc/resolv.conf
dnsmasq
- 取消注释
no-dhcp-interface=
以禁用dnsmasq
DHCP 服务器功能; - 添加单个通用记录:
server=10.8.0.1
; - 添加特定记录:
server=/mydomain.local/10.250.0.2
所有对主机的请求都mydomail.local
转到该服务器。
答案2
实际上,如果您使用 dnsmasq,就可以做到这一点。
您可以在 /etc/dnsmasq.conf 文件的底部添加如下行:
server=/domain.net/172.166.7.23
server=/domain.com/142.124.17.12
我还没有在我的机器上测试过它,但它对我来说是有效的。
我的要求是因为我的 VPN 客户端在连接到工作场所路由内部地址时没有使用正确的名称服务器。这解决了这个问题,即为特定域使用内部 DNS 服务器。
答案3
在我看来,仅使用简单方法可能很难实现/etc/resolv.conf
。安装本地解析器会不会有问题?如果不是,以下计划可能适用:
- 从您的发行版存储库安装仅缓存 DNS。默认配置应该可以工作,并且通常您
127.0.0.1
只将其作为监听地址。 - 备份现有的
/etc/resolv.conf
并创建一个新的,仅包含nameserver 127.0.0.1
。测试您的本地 DNS 是否正常工作,解析 Internet 名称。 - 将以下内容放入
named.conf
:
zone "mydomain.local" { type forward; forward only; forwarders { Your-VPN-DNS-IP; }; };
- 再次测试 Internet 和 VPN 解析。如果成功,您可以
search
在 中添加一行/etc/resolv.conf
。
肝素钠
答案4
这个问题已经在其他地方得到解答了。
https://serverfault.com/a/832437/118396
简短的回答是,您可以使用 resolv.conf 选项实现这一点。尽管不是通过每个域的 DNS 分配,而是通过跨名称服务器轮换。
[root@centos-xxxxxx ~]# cat /etc/resolv.conf
options rotate
options timeout:1
search xyz.abc.local
nameserver 192.168.56.3
nameserver 10.0.2.4