我想在我的本地主机(服务器)上拥有强大的 DNS 缓存服务器。所以我需要将名称服务器更改为我的本地主机。
我怎样才能改变它?通过这个配置,我似乎不能通过编辑器更改它,所以我该如何更改它?
root@asqar# cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 4.2.2.4
search asqar.net
Run Code Online (Sandbox Code Playgroud)我正在使用bind9如何设置 DNS 缓存,任何配置?
jdt*_*ood 12
如果您想在本地计算机上使用 DNS 缓存,请使用 dnsmasq,而不是 BIND。
除非您确实需要本地迭代名称服务器,否则请卸载 BIND。
sudo apt-get purge bind9
Run Code Online (Sandbox Code Playgroud)
现在是 dnsmasq。有两种使用 dnsmasq 的方法。
1:如果你使用 NetworkManager 来管理网络,那么你已经安装了 dnsmasq-base 包;您只需要通过编辑启用 NetworkManager 控制的 dnsmasq 实例NetworkManager.conf
sudo gedit /etc/NetworkManager/NetworkManager.conf
Run Code Online (Sandbox Code Playgroud)
并确保线路
dns=dnsmasq
Run Code Online (Sandbox Code Playgroud)
存在。接下来在此 dnsmasq 实例中启用缓存。创建一个名为的新配置文件,例如,local
sudo gedit /etc/NetworkManager/dnsmasq.d/local
Run Code Online (Sandbox Code Playgroud)
并添加单行
cache-size=150
Run Code Online (Sandbox Code Playgroud)
将默认缓存大小从零更改。然后重启网络管理器
sudo restart network-manager
Run Code Online (Sandbox Code Playgroud)
这还将使用新的非零缓存大小启动或重新启动 NetworkManager 控制的 dnsmasq 实例。
这仅适用于 Ubuntu 12.10 或更高版本。在 Ubuntu 12.04 中,无法自定义 NetworkManager 控制的 dnsmasq 配置,缓存大小为零。
2:使用 dnsmasq 的另一种方式是将其作为服务器运行。为此,请安装dnsmasq包并通过编辑/etc/dnsmasq.conf和设置cache-size为大于零的值来配置它。
在 Ubuntu 12.10 中,如果 NetworkManager 控制的 dnsmasq 实例被禁用,则 dnsmasq 服务器将查询转发到外部名称服务器,如果启用 NetworkManager 控制的 dnsmasq 实例,则将查询转发到地址为 127.0.1.1 的 NetworkManager 控制的 dnsmasq 实例。
在 Ubuntu 12.04 中可以实现同样的事情,但需要一些额外的手动配置步骤,因为在 Ubuntu 12.04 中,NetworkManager 控制的 dnsmasq 实例在 127.0.0.1 侦听,这与 dnsmasq 服务器的默认配置冲突。