8.10上網速度慢,本來以為就這速度,可是同樣環境下,和別人的XP一比,明顯慢很多。
究其原因:ubuntu 8.10
自動連接時將網卡的mtu值自動設置成了576,而在多數據網關,比如一些路由的mtu值是
1492或其它的。這樣網關在轉發數據時就重新封裝。
MTU是Maximum Transmission
Unit的縮寫。意思是網絡上傳送的最大數據包。MTU的單位是字節。
大部分網絡設備的MTU都是1500。如果本機的MTU比網關的MTU大,大的數據包就會被拆開來傳送,這樣會產生很多數據包碎片,增加丟包率,降低網絡速度。把本機的MTU設成比網關的MTU小或相同,就可以減少丟包。
測試網關的MTU大小:
在本機打開dos窗口,執行:ping -f -l 1472 192.168.0.1
其中192.168.0.1是網關IP地址,1472是數據包的長度。請注意,上面的參數是"-l"(小寫的L),而不是"-1"。
如果能ping通,表示數據包不需要拆包,可以通過網關發送出去。
如果出現:Packet needs to be fragmented but DF set.
表示數據包需要拆開來發送。此時,減少數據包長度,再執行上面的ping命令。從1400到1472之間多試幾次,就能找到合適的數據包長度了。把數據包長度加上數據包頭28字節,就得到MTU的值。
如果檢測到網關的MTU值是1500,不需要修改。
如果網關有防火墻ping不通,可以試試直接把MTU設為1400。
解決辦法:設置網卡的mtu值為 網關一磁的就可以了。一般為 1492 。
1:手動設置
$ sudo ifconfig eth0 mtu 1492
其中eth0 是網卡名稱,如果你的不是這個可以做相應的更改,
不過這樣每次重新連接時雙要設置一下,比較麻煩。下面我提供的一個勞永逸的辦法:
2:網絡連接(網卡被激活時)自動設置 mtu 值
在/etc/network/if-up.d目錄下新建一個腳本文件,比如 setmtu
$ sudo vi /etc/network/if-up.d/setmtu
將下面的代碼加入setmtu 腳 本中
#!/bin/sh
ifconfig "$IFACE" mtu 1492
保存退出,然后給這個腳本中可執行權限
$ sudo chmod a+x /etc/network/if-up.d/setmtu
其中 "$IFACE" 是一個變量,返回的是當前激活的網卡名稱 比如 eth0 eth1 。
這樣即使你有多張網卡,有網卡被激活時就自動運行這個個腳本 設置mtu值為1492了
如果本地的DNS服務器不是很穩定(癥狀:打開firefox網頁總是"頁面被重置",每頁都要刷新無數次,opera呢?是反應慢):
sudo apt-get install dnsmasq
1.編輯/etc/dnsmasq.conf,搜索"listen-address"把注釋號去掉,并修改為:
listen-address=127.0.0.1
2.編輯/etc/dhcp3/dhclient.conf,修改為:
#supersede domain-name "
fugue.com
home.vix.com
";
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;
3.編輯/etc/resolv.conf,在第一行添加 :
nameserver 127.0.0.1
sudo /etc/init.d/dnsmasq restart
網友回復:
我也有這種問題,改了mtu,還是不行,最后自己添加了一個網絡連接,設置跟原來的一樣,問題沒了,很詭異。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
