我喜欢运行自己的名称服务器(BIND)的想法,但如果我这样做,我就无法通过将恶意网站放入 /etc/hosts 来阻止它们获得好处
DNSMasq 能够引用 /etc/hosts,但不是指定“上游”dnsserver,我希望它能够在同一台计算机上使用 BIND。但是,它们都需要使用相同的端口。
这可能吗?我在常规搜索中找不到任何相关信息。
我想另一种选择是在虚拟机中运行另一个 Linux 实例并在那里运行 DNSMasq(比如说),但我不想这样做。
您可以将多个 IP 地址分配给同一个接口,无论是使用
ip addr add <address>/32 dev eth0
或使用
ifconfig eth0:1 <address>
然后将一台服务器绑定到一个地址,另一台服务器绑定到第二个地址。 查询哪个服务器现在取决于您的查询发送到的 IP 地址。
示例假设您的 eth 接口是 eth0。
我遇到了同样的问题,因为我真的很喜欢 dnsmasq 处理 /etc/hosts 并附加本地域,但不想使用特定的上游名称服务器,我猜至少谷歌会计算谁获得最多的点击率,而我'我想缓存回复。我在一台机器上设置了与根域名服务器的缓存绑定,然后用 dnsmasq 指向我的其他机器,结果很好。我家里只有一台机器,所以想到添加一个别名并将 bind9 绑定到它。
因此,棘手的部分是 dnsmasq 默认情况下在启动时绑定到所有接口,因此要解决此问题。
汽车 enp2s0
允许热插拔 enp2s0
iface enp2s0 inet 静态
地址192.168.12.7
网络192.168.12.0
网络掩码255.255.255.0
广播192.168.12.255
网关192.168.12.1
dns 名称服务器 1.1.1.1,9.9.9.9
自动 enp2s0:0
允许热插拔 enp2s0:0
iface enp2s0:0 inet 静态
地址192.168.12.53/24
监听{192.168.12.53; };
除了接口=enp2s0:0
绑定接口
只需在适当的地方更改接口名称和 IP。