个人工具

“使用本地DNS加速网络访问”的版本间的差异

来自Ubuntu中文

跳转至: 导航, 搜索
配置 dnsmasq
 
(未显示6个用户的8个中间版本)
第1行: 第1行:
==如何使用本地DNS加速网络访问==
+
== 如何使用本地DNS加速网络访问 ==
  
本文作者:[http://blog.chinaunix.net/u2/62652/ dogfox] [email protected]
+
本文作者:[http://blog.chinaunix.net/u2/62652/ dogfox] [email protected]  
  
适用版本:ubuntu fasty & hardy
+
适用版本:ubuntu fasty & hardy  
  
== 安装 dnsmasq ==
+
== 安装 dnsmasq ==
  
 
  sudo apt-get install dnsmasq
 
  sudo apt-get install dnsmasq
 +
  
== 配置 dnsmasq ==
+
== 配置 dnsmasq ==
  
* '''编辑 /etc/dnsmasq.conf'''
+
看dnsmasq帮助
 +
man dnsmasq
  
  sudo gedit /etc/dnsmasq.conf
+
其中有这么一段描述:
 +
In order to configure dnsmasq to act as cache for the host on which it is running, put "nameserver 127.0.0.1" in /etc/resolv.conf to force  local processes  to  send queries to dnsmasq. Then either specify the upstream servers directly to dnsmasq using --server options or put their addresses real in another file, say /etc/resolv.dnsmasq and run dnsmasq with the -r /etc/resolv.dnsmasq option.
  
搜索“listen-address”把注释号去掉,并修改为:
+
大意是如果想让dnsmasq作为dns缓存,需要将“nameserver 127.0.0.1”放到/etc/resolv.conf文件中,通常是第一条非注释语句,然后将真正的dns服务器信息放到另外一个文件中,如“/etc/resolv.dnsmasq”,最后执行命令:
 +
dnsmasq -r /etc/resolv.dnsmasq
  
  listen-address=127.0.0.1
+
*'''第一步'''
 +
按照帮助文档的提示,需要修改/etc/resolv.conf文件。
 +
可以手动修改,如使用vi,可以将原有的内容全部注释,然后在第一行写上
 +
nameserver 127.0.0.1;
 +
也可以使用ubuntu的网络管理小程序“Network Manager”在桌面右上角有一个它的图标,右键点击该图标,选择“编辑连接”,选择你所使用的连接,点击编辑,在“IPv4设置”标签的“DNS服务器”输入框中,把原有的DNS服务器删除,输入
 +
  127.0.0.1。
  
然後找到下面这一项
+
*'''第二步'''
 +
在/etc目录下新建resolv.dnsmasq文件。文件的内容为DNS服务器的地址,是真正的DNS服务器,如我的文件内容是:
  
  # resolv-file=
+
  nameserver 210.47.0.1
 +
nameserver 202.98.5.68
  
 +
*'''第三步'''
 +
可以不按帮助文档所说的执行“dnsmasq -r /etc/resolv.dnsmasq”命令,如果这样,岂不是每次都得在命令行里输入,非常麻烦,当然,可以考虑把这个命令写入“/etc/rc.local”文件中,让系统每次启动时帮你运行。
 +
我所使用的方法是编辑“/etc/dnsmasq.conf”文件。找到下面这一项
 +
#resolv-file=
 
用下面的一条语句替换
 
用下面的一条语句替换
 +
resolv-file=/etc/resolv.dnsmasq
 +
其实也就是执行dnsmasq命令中-r参数后面的内容。
  
resolv-file=/etc/resolvconf/update.d/dnsmasq
+
*'''编辑 /etc/dhcp3/dhclient.conf'''
 +
找到下面这一项
 +
#prepend domain-name-servers 127.0.0.1;
 +
将前面的“#”删除。这么做的目的是为了在使用自动连接时,能在/etc/resolv.conf文件的第一行添加上“nameserver 127.0.0.1”,这样,dns缓存依然有效
  
* '''编辑 /etc/dhcp3/dhclient.conf'''
+
*'''编辑 /etc/ppp/peers/dsl-provider'''
 +
可能有的系统没有“/etc/ppp/peers/dsl-provider”文件,而是“/etc/ppp/peers/provider”文件,找到下面这一项
 +
usepeerdns
 +
在前面增加“#”,也就是把这条语句注释掉。以防resolv.conf的设置被pppoe复盖。
  
sudo gedit /etc/dhcp3/dhclient.conf
+
对于12.04版本
 +
由于该版本已经安装dnsmasq-base,则必须先修改/etc/NetworkManager/NetworkManager.conf文件,注释dns=dnsmasq
 +
修改/etc/default/dnsmasq文件,取消IGNORE_RESOLVCONF=yes注释
  
修改为:
+
== 测试  ==
  
# 找到下面的内容,并进行修改
+
重启服务:
  
  prepend domain-name-servers 127.0.0.1; # 把这一行前面的注释去掉
+
  sudo /etc/init.d/dnsmasq restart
  request subnet-mask, broadcast-address, time-offset, routers,
+
  或者 sudo service dnsmasq restart
  domain-name, domain-name-servers, host-name,
+
  netbios-name-servers, netbios-scope;
+
   
+
  
* '''编辑 /etc/resolv.conf'''
 
  
sudo gedit /etc/resolv.conf
+
测试,执行两次就能看出查询时间的差异了:
  
在第一行添加 nameserver 127.0.0.1
+
dig g.cn
  
示例
+
== 浏览器设置 ==
  
nameserver 127.0.0.1
+
firefox设置
nameserver 202.102.227.68
+
http://blog.chinaunix.net/photo/62652_080815072045.png
nameserver 202.102.224.68
+
search 66.249.89.99
+
  
* '''编辑 dsl-provider'''
+
opera和firefox一样的设置
 
+
sudo gedit /etc/ppp/peers/dsl-provider
+
 
+
在 usepeerdns 前面增加 # ,也就是把这条语句复盖掉。
+
 
+
以防,resolv.conf的设置被pppoe复盖。
+
 
+
== 测试 ==
+
 
+
重启服务:
+
 
+
sudo /etc/init.d/dnsmasq restart
+
 
+
测试,执行两次就能看出查询时间的差异了:
+
 
+
dig g.cn
+

2013年8月17日 (六) 21:58的最新版本

如何使用本地DNS加速网络访问

本文作者:dogfox [email protected]

适用版本:ubuntu fasty & hardy

安装 dnsmasq

sudo apt-get install dnsmasq

配置 dnsmasq

看dnsmasq帮助

man dnsmasq

其中有这么一段描述: In order to configure dnsmasq to act as cache for the host on which it is running, put "nameserver 127.0.0.1" in /etc/resolv.conf to force local processes to send queries to dnsmasq. Then either specify the upstream servers directly to dnsmasq using --server options or put their addresses real in another file, say /etc/resolv.dnsmasq and run dnsmasq with the -r /etc/resolv.dnsmasq option.

大意是如果想让dnsmasq作为dns缓存,需要将“nameserver 127.0.0.1”放到/etc/resolv.conf文件中,通常是第一条非注释语句,然后将真正的dns服务器信息放到另外一个文件中,如“/etc/resolv.dnsmasq”,最后执行命令:

dnsmasq -r /etc/resolv.dnsmasq
  • 第一步

按照帮助文档的提示,需要修改/etc/resolv.conf文件。 可以手动修改,如使用vi,可以将原有的内容全部注释,然后在第一行写上

nameserver 127.0.0.1;

也可以使用ubuntu的网络管理小程序“Network Manager”在桌面右上角有一个它的图标,右键点击该图标,选择“编辑连接”,选择你所使用的连接,点击编辑,在“IPv4设置”标签的“DNS服务器”输入框中,把原有的DNS服务器删除,输入

127.0.0.1。
  • 第二步

在/etc目录下新建resolv.dnsmasq文件。文件的内容为DNS服务器的地址,是真正的DNS服务器,如我的文件内容是:

nameserver 210.47.0.1
nameserver 202.98.5.68
  • 第三步

可以不按帮助文档所说的执行“dnsmasq -r /etc/resolv.dnsmasq”命令,如果这样,岂不是每次都得在命令行里输入,非常麻烦,当然,可以考虑把这个命令写入“/etc/rc.local”文件中,让系统每次启动时帮你运行。 我所使用的方法是编辑“/etc/dnsmasq.conf”文件。找到下面这一项

#resolv-file=

用下面的一条语句替换

resolv-file=/etc/resolv.dnsmasq

其实也就是执行dnsmasq命令中-r参数后面的内容。

  • 编辑 /etc/dhcp3/dhclient.conf

找到下面这一项

#prepend domain-name-servers 127.0.0.1;

将前面的“#”删除。这么做的目的是为了在使用自动连接时,能在/etc/resolv.conf文件的第一行添加上“nameserver 127.0.0.1”,这样,dns缓存依然有效

  • 编辑 /etc/ppp/peers/dsl-provider

可能有的系统没有“/etc/ppp/peers/dsl-provider”文件,而是“/etc/ppp/peers/provider”文件,找到下面这一项

usepeerdns

在前面增加“#”,也就是把这条语句注释掉。以防resolv.conf的设置被pppoe复盖。

对于12.04版本 由于该版本已经安装dnsmasq-base,则必须先修改/etc/NetworkManager/NetworkManager.conf文件,注释dns=dnsmasq 修改/etc/default/dnsmasq文件,取消IGNORE_RESOLVCONF=yes注释

测试

重启服务:

sudo /etc/init.d/dnsmasq restart
或者 sudo service dnsmasq restart


测试,执行两次就能看出查询时间的差异了:

dig g.cn

浏览器设置

firefox设置 62652_080815072045.png

opera和firefox一样的设置