dnsmasq配置

来源:互联网 发布:来自网络用英语怎么说 编辑:程序博客网 时间:2024/05/25 01:36

配置 dnsmasq 的上游 dns 服务器;(这是一个 dns 缓存, 那么其还是需要有上游服务器进行一次域名解析的)

  • 配置系统的 dns 服务器, 将 dnsmasq 设置在首位寻找
  • 设置 dnsmasq 需要监听的 IP 地址, 让其他服务器能够找到他

首先配置 resolv-file=/etc/resolv.dnsmasq.conf 这个参数表示 dnsmasq 会从这个指定的文件中寻找上游 dns 服务器

  1. 将 127.0.0.1 添加到 /etc/resolv.conf 文件的第一行中, 让系统首先寻找本地的 dnsmasq 服务器 取消注释的 strict-order 表示严格安装 resolv-file 文件中的顺序从上到下进行 DNS 解析, 直到第一个成功解析成功为止
  2. 确保注释掉 no-hosts, 默认情况下这是注释掉的, dnsmasq 会首先寻找本地的 hosts 文件再去寻找缓存下来的域名, 最后去上游 dns 服务器寻找.
  3. 设置 listen-address=127.0.0.1, 表示这个 dnsmasq 本机自己使用有效.
  4. 这里有一个坑 listen-addres , 我爬了好长时间才爬出来..

在这些配置中, listen-address 的参数坑了我好长时间, 最后才能明白如何配置. 例如, 我还需要让局域网内其他的服务器也能够首先访问这个 dnsmasq 来进行域名解析如何配置? listen-address=192.168.1.100 (dnsmasq 所在服务器局域网内 ip), 好吧, 这样你本机配置的 127.0.0.1 就没效果了… 如果设置为 listen-address=127.0.0.1 那局域网内其他服务器就无法访问到这个 dnsmasq 了, 其实应该这样设置 listen-address=192.168.1.100,127.0.0.1 这样你就能双方都满足了, 不过需要注意的一点是, 如果 dnsmasq 所在服务器在局域网的 ip 地址变更了与配置文件中的不一样, 那么理所当然的再使用配置文件中的那个 ip, 局域网内其他服务器也就找不到这台 dnsmasq ,也就无法利用本地的 dns 缓存了.

汇总

最后来汇总一下, 能够快速的部署起来.

resolv.conf
12
# 让操作系统去 127.0.0.1 找 dnsmasqnameserver 127.0.0.1
resolv.dnsmasq.conf
1234
# 让 v2ex(这些) dns 的地址成为 dnsmasq 的上游 DNSnameserver 199.91.73.222nameserver 8.8.8.8nameserver 8.8.4.4
dnsmasq.conf
123
resolv-file=/etc/resolv.dnsmasq.confstrict-orderlisten-address=192.168.1.100,127.0.0.1

上面设置好以后, 让我们把 dnsmasq 启动起来吧:

/usr/sbin/dnsmasq -r /etc/resolv.dnsmasq.conf
0 0
原创粉丝点击