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上網慢的思路也就來了:我們在本機搭建一個DNSProxy 伺服器,緩衝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。
後面的參數採用預設就可以了。
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
5.簡單測試
dig yahoo.com | grep time
第一次結果顯示:;; Query time: 11 msec
第二次結果顯示:;; Query time: 0 msec
第三次結果顯示:;; Query time: 0 msec
第四次結果顯示:;; Query time: 0 msec
第N次結果顯示:;; Query time: 0 msec、
至此,我們的本地DNSProxy 伺服器已經搭建成功。當然,這並沒有意味著網速會
立馬得到提升。但是,當Firefox第二次訪問同一個網域名稱下的頁面 時,Looking up xxxx.com.... 或者 Connecting to xxxx.com...的時間已經幾乎為0。現在我們的Ubuntu的上網速度已經和Windows下相當了。
以上內容轉自: http://lookluk.blogbus.com/logs/56313765.html
我本人按照上述方法實驗之後,第四步沒有成功,提示“Not start pdnsd ”
不過可喜可賀的是,第五步竟然成功了!!!也就是說達到了預期效果。
哈哈。。。。。。。。。。
設定成功後再次重啟,可能會出現dns無法解析的問題。可用如下方法解決。
在使用networkmanager設定網卡時,會出現每次重啟系統時DNS自動清零的問題,每次重啟後都要重新設定DNS非常麻煩。
而nameserver的設定檔是 /etc/resolv.conf
這是正常的內容:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 202.102.152.3
重啟後nameserver 202.102.152.3就被刪除了。
由上面的# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
可以看出,resolv.conf是由resolvconf產生的。編輯vim /etc/resolvconf/resolv.conf.d/head 檔案
顯示與resolv.conf相同的內容:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
在最後鍵入nameserver 202.102.152.3
儲存退出,
resolvconf -u
此時就可以正常上網了,重啟後不用在重新設定DNS了。
轉自 http://hi.baidu.com/step_1/blog/item/bad960f53b2c6337bd3109b2.html