如何激活本地缓存名称服务器?

swe*_*web 7 resolv.conf bind

我想在我的本地主机(服务器)上拥有强大的 DNS 缓存服务器。所以我需要将名称服务器更改为我的本地主机。

  1. 我怎样才能改变它?通过这个配置,我似乎不能通过编辑器更改它,所以我该如何更改它?

    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)
  2. 我正在使用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 服务器的默认配置冲突。