http://www.cnblogs.com/sunleecn/archive/2011/10/25/2224290.html
Ubuntu上网慢?没错!不要再怀疑,Ubuntu上网的确要比Windows下慢。慢在哪里呢?
在Ubuntu 9.10下使用Firefox浏览网页的时候你会发现,左下角的状态栏里,长时间的显示:Looking up xxxx.com.... 或者 Connecting to xxxx.com 的信息。此时页面保持空白.
当这条信息终于跳过去的时候,便是快速的Transferring data from xxxx.com,很快,
页面显示完毕。此时我们得出结论:慢在DNS解析上,而非慢在拉取网页数据上。
在Windows下是默认开启了DNS缓存的,因此所有解析过的域名,短时间内不可能再连接远程DNS服务器进行查询,而是直接从本地的DNS 缓存 中查询,理论上讲,解析DNS的时间近似于0。而Ubuntu并没有默认开启类似的功能。因此,我们感觉,同样一台机器,同样一根电缆,Windows下 的上网速度要优于Ubuntu。
因此,解决Ubuntu上网慢的思路也就来了:我们在本机搭建一个DNS代理服务器,缓存DNS即可。linux下搭建DNS代理的常用软件 有:bind、djbdns、dnsmasq和pdnsd等。此处,我们以pdnsd来举例。
1.安装
pdnsd已经加入源里了,安装非常简便:
sudo apt-get install pdnsd
安装过程中,它会问你选择何种配 置,此处选择manual。
2.配置
sudo gedit /etc/pdnsd.conf
修改
server {
label="resolvconf";
}
为
server {
label="resolvconf";
ip=61.233.154.33;
ip=211.98.4.1;
timeout=30;
interval=30;
uptest=ping;
ping_timeout=50;
purge_cache=off;
}
其中:
ip=61.233.154.33;
ip=211.98.4.1;
这 两行也可以写成一行ip=61.233.154.33,211.98.4.1; 代表当地的DNS服务器地址,如果你上的是校园网,那么这两个地址就是网管阿姨给你的那个DNS和备用DNS了。。。
可以有多个,根据自己情况填写。这里是铁通的DNS。
#这个配置文档在写的时候,需要用手工输入,不要直接拷贝,拷贝的话,因为网页的编码格式和lnux里面的编码格式不一致,容易出现配置文档不正确的情况,所以需要手工输入。
后面的参数采用默认就可以了。
3.设置本机的DNS
sudo gedit /etc/resolv.conf
在所有内容之前插入一行:
nameserver 127.0.0.1
特别的,如果你是ADSL拨号上网(通过pppoeconf配置),那么还需要修改一下文件:
sudo gedit /etc/ppp/peers/dsl-provider
在usepeerdns前加#,注释掉。防止ppp强制使用远程DNS,并覆盖 resolv.conf
如果你启用了DHCP服务,那么要
sudo gedit /etc/dhcp3/dhclient.conf
去掉
#prepend domain-name-servers 127.0.0.1;
前面的“#“。
4.启动pdnsd
sudo /etc/init.d/pdnsd start
#在我试用这个启动之后,出现了如下
Not starting pdnsd (disabled in /etc/default/pdnsd)
所以,在 sudo gedit /ect/default/pdsnd
中将START_DAEMON=no
改为START_DAEMON=yes
5.简单测试
dig www.baidu.com | grep time
;; Query time: 0 msec