使用本地DNS加速网络访问:修订间差异

来自Ubuntu中文
跳到导航跳到搜索
Scorpioqh留言 | 贡献
第11行: 第11行:


== 配置 dnsmasq  ==
== 配置 dnsmasq  ==
看dnsmasq帮助
man dnsmasq


*'''编辑 /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.


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


搜索“listen-address”把注释号去掉,并修改为:
按照帮助文档的提示,需要修改/etc/resolv.conf文件。
可以手动修改,如使用vi,可以将原有的内容全部注释,然后在第一行写上“nameserver 127.0.0.1”;
也可以使用ubuntu的网络管理小程序“Network Manager”在桌面右上角有一个它的图标,右键点击该图标,选择“编辑连接”,选择你所使用的连接,点击编辑,在“IPv4设置”标签的“DNS服务器”输入框中,把原有的DNS服务器删除,输入127.0.0.1。


listen-address=127.0.0.1
然后在/etc目录下新建resolv.dnsmasq文件。文件的内容为DNS服务器的地址,是真正的DNS服务器,如我的文件内容是:
nameserver 210.47.0.1
 
nameserver 202.98.5.68
然后找到下面这一项
 
# resolv-file=


最后一步,可以不按帮助文档所说的执行“dnsmasq -r /etc/resolv.dnsmasq”命令,如果这样,岂不是每次都得在命令行里输入,非常麻烦,当然,可以考虑把这个命令写入“/etc/rc.local”文件中,然系统每次启动时帮你运行。
我所使用的方法是编辑“/etc/dnsmasq.conf”文件。找到下面这一项
#resolv-file=
用下面的一条语句替换  
用下面的一条语句替换  
 
resolv-file=/etc/resolv.dnsmasq
resolv-file=/etc/resolvconf/update.d/dnsmasq
其实也就是执行dnsmasq命令中-r参数后面的内容。
 
<pre>这里是修改者参考URL:http://forum.ubuntu.org.cn/viewtopic.php?f=86&t=22361添加的
之后执行:
确保你没有更改过/etc/resolv.conf文件,如果改过,恢复原状
然后执行命令
sudo cp /etc/resolv.conf /etc/resolv.dnsmasq.conf </pre>


*'''编辑 /etc/dhcp3/dhclient.conf'''
*'''编辑 /etc/dhcp3/dhclient.conf'''
 
找到下面这一项
sudo gedit /etc/dhcp3/dhclient.conf
#prepend domain-name-servers 127.0.0.1;
将前面的“#”删除
 
这么做的目的是为了在使用自动连接时,能在/etc/resolv.conf文件的第一行添加上“nameserver 127.0.0.1”
修改为:
这样,dns缓存依然有效
 
# 找到下面的内容,并进行修改
 
prepend domain-name-servers 127.0.0.1; # 把这一行前面的注释去掉
  request subnet-mask, broadcast-address, time-offset, routers,
  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
 
示例
 
nameserver 127.0.0.1
nameserver 202.102.227.68
nameserver 202.102.224.68
search 66.249.89.99


*'''编辑 dsl-provider'''
*'''编辑 dsl-provider'''
 
sudo gedit /etc/ppp/peers/dsl-provider    ps:也有可能是provider文件
sudo gedit /etc/ppp/peers/dsl-provider    ps:也有可能是provider文件
在 usepeerdns 前面增加“#”,也就是把这条语句注释掉。 (注意:有两句  usepeerdns 都要注释掉)
 
在 usepeerdns 前面增加 # ,也就是把这条语句复盖掉。 (注意:有两句  usepeerdns 都要注释掉)
 
以防,resolv.conf的设置被pppoe复盖。
以防,resolv.conf的设置被pppoe复盖。
另外可选配置
<pre>
同时,你也可以把dns地址更改为opendns的设置,这样在速度,智能性,防钓鱼站点各个方面都有所提高.
opendns的地址是(修改/etc/resolv.dnsmasq.conf文件):
nameserver 208.67.222.222
nameserver 208.67.220.220</pre>


== 测试  ==
== 测试  ==

2010年3月9日 (二) 15:35的版本

如何使用本地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”文件。找到下面这一项

  1. resolv-file=

用下面的一条语句替换 resolv-file=/etc/resolv.dnsmasq 其实也就是执行dnsmasq命令中-r参数后面的内容。

  • 编辑 /etc/dhcp3/dhclient.conf

找到下面这一项

  1. prepend domain-name-servers 127.0.0.1;

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

  • 编辑 dsl-provider

sudo gedit /etc/ppp/peers/dsl-provider ps:也有可能是provider文件 在 usepeerdns 前面增加“#”,也就是把这条语句注释掉。 (注意:有两句 usepeerdns 都要注释掉) 以防,resolv.conf的设置被pppoe复盖。

测试

重启服务:

sudo /etc/init.d/dnsmasq restart

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

dig g.cn

浏览器设置

firefox设置 62652_080815072045.png

opera和firefox一样的设置