为了加快 DNS 查找速度,我想要安装 DNS 缓存或代理。
我看到至少三个我认为可以完成这项工作的程序:bind9、pdnsd 或 dnsmasq。
我想确保安装其中一个后不会在性能或安全方面配置不当。那么,大家有什么建议?安装后我应该立即进行哪些配置更改?
答案1
- 安装 bind9
- 将 resolv.conf 指向 127.0.0.1
为此,请按照以下步骤操作:
安装Bind9
- 打开“Ubuntu 软件中心”(应用程序->Ubuntu 软件中心)
- 搜索 bind9
- 勾选显示“技术项目”
- 标记bind9并安装
更新 /etc/resolv.conf
- 打开网络管理器(系统->首选项->网络管理器)
- 找到您的连接并编辑它(有线或无线)
- 切换“IPV4 配置”选项卡
- 在“DNS 服务器”字段中写入 127.0.0.1
完成!
去测试
打开 gnome-terminal(应用程序 > 附件 > 终端)并输入
dig ubuntu.com
(如果您没有,请按照 bind9 的说明安装 dnsutils 包)
检查最后的答案,例如:
我在 ubuntu.com 上的第一个查询
;; Query time: **209 msec**
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Jan 22 12:20:12 2011
;; MSG SIZE rcvd: 196
我的第二个疑问:
;; Query time: **0 msec**
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Jan 22 12:18:23 2011
;; MSG SIZE rcvd: 156
服务器 127.0.0.1 表示您正在本地解析。查看查询时间(被 ** 包围),第二个是缓存的。
答案2
我推荐 dnsmasq,
在这里查看一个不错的教程;http://embraceubuntu.com/2006/08/02/local-dns-cache-for-faster-browsing/
您可能想在这里阅读比较;
http://en.wikipedia.org/wiki/Comparison_of_DNS_server_software
答案3
“为了加快 DNS 查找速度,我想安装 DNS 缓存或代理。”
好的。但是还有一种更简单的方法。对于 OpenDNS/Google 缓存中已存在的名称,使用 OpenDNS 和/或 Google 名称服务器将比您自己的本地缓存更快。使用 208.67.222.222、208.67.220.220 和/或 8.8.8.8 作为名称服务器几乎总是会更快。您可以使用它来测试time nslookup www.google.com 208.67.222.222
其中一个 OpenDNS 名称服务器、time nslookup www.google.com 8.8.8.8
Google 或time nslookup www.google.com 127.0.0.1
本地缓存的速度。当我说更快时,我的意思是技术上更快,但不会快到让人轻易注意到差异的程度。
“我认为至少有三个程序可以完成这项工作:bind9、pdnsd 或 dnsmasq。”
您是否愿意使用 djbdns 的 dnscache 部分?说明如下。不过,如果没有补丁,它不会保存缓存...
sudo apt-get remove bind9 dnsmasq-base
sudo apt-get install djbdns dnscache-run
sudo killall -9 dnsmasq
sudo update-rc.d -f bind9 remove
然后我们需要告诉系统使用我们的缓存。
sudo gedit /etc/resolv.conf
编辑文件,使其看起来像此示例。此文件定义要使用的名称服务器、默认域和搜索后缀。搜索后缀使得仅使用完全限定域名的主机名部分即可运行查询。例如,当 example.com 是“search”参数的值时,“nslookup www”会自动变为“nslookup www.example.com”。
nameserver 127.0.0.1 # Use the local resolver first.
nameserver 208.67.222.222 # OpenDNS
nameserver 8.8.8.8 # Google
domain example.com
search example.com
这有点花哨,但我们需要获取最新的根名称服务器。
sudo dnsip $(dnsqr ns . | sed -e '/answer/!d;s/\(.*\)NS \(.*\)/\2/') | sudo tee /etc/dnscache/root/servers/@
我认为当我们使用 DHCP 时,resolv.conf 文件会被覆盖。我选择给自己一个静态 IP 地址,并删除压缩它的软件,编辑接口文件以设置静态 IP 地址。但如果您愿意,您可以尝试使用网络管理器。
sudo apt-get purge network-manager network-manager-gnome
sudo gedit /etc/network/interfaces
我的接口文件如下所示,但请根据您的配置进行修改。
# Loopback
#
auto lo
iface lo inet loopback
# First network card (attached to NAT router, attached to cable internet)
#
auto eth0
iface eth0 inet static
address 192.168.1.254
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
现在我们重新开始吧。
sudo reboot
现在,您使用的是本地解析器和最新的根服务器。但如果您尝试,您会注意到 OpenDNS 和 Google 实际上响应速度更快(对于缓存中的名称,即所有最受欢迎的域名)。没有其他配置可以使软件变得比现在更安全。
答案4
无论使用哪种工具,请确保防火墙上未启用端口 53。您可能希望仅允许具有缓存出站访问的主机。
DNSMasq 易于安装,且文档齐全。如果您将其安装在防火墙上,请指定要绑定的接口(不包括 Internet 接口)。
Bind 的配置更困难,并且可能不适合用作小型网络的缓存。我相信默认配置仅用于缓存。您可能需要添加 ACL 来限制哪些地址可以使用您的服务器。