如何檢測和修改本機網卡的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[編輯本段]修改方法如下:
(1)、運行regedit
(2)、瀏覽到: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
(3)、Interfaces下有多個子項,每個子項對應一個網卡。
請按如下方法選擇網卡:
(a)確定本機用來連接Internet的網卡或撥號連接的IP,如192.168.0.19;
(b)用鼠標點擊Interfaces上的子項,查看鍵值列表中的IPAddress項;
(c)如果IPAddress的鍵值與(a)中的IP相同,即192.168.0.19,則該子項就是要找的網卡。
(4)、進入該子項,在右邊的窗口裏按鼠標右鍵,選擇“新建”->“雙字節值”,輸入名稱“MTU”,按回車。再用鼠標雙擊“MTU”,彈出修改窗口: 如圖3: 填入MTU的值。填寫前請先把基數設爲十進制。 設置好後,需要重啓機器才能生效。
Linux下可使用如下命令修改 需要root權限
ifconfig 網卡 MTU值
如 ifconfig eth0 mtu 1460
或者,打開開始菜單-附件裏的命令行提示符,一個黑屏DOS窗口出現,然後在窗口入輸入
netsh interface ipv4 show subinterfaces
C:\Users\LiGht>netsh interface ipv4 show subinterfaces
MTU MediaSenseState 傳入字節 傳出字節 接口
—— ————— ——— ——— —————— ————
4294967295 1 0 17321 Loopback Pseudo-Interface 1
1500 1 105771098 22604488 無線網絡連接
1500 5 0 0 本地連接* 12
這樣的顯示結果,你有幾個網絡連接就會顯示幾行。我電腦上是兩個,一個本地連接,一個無線網卡。正常上網使用的是無線網絡。連接名是無線網絡連接。也同時看到了這一排最前面的1500了吧。我們要修改的就是它了。
下面運行第二個命令,修改
netsh interface ipv4 set subinterface 無線網絡連接 mtu=1480 store=persistent
這裏的無線網絡連接是在上個命令中查看到的,你正在正在上網的連接,這個別弄錯了,弄錯了就不起做用了。