如何检测和修改本机网卡的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
  这里的无线网络连接是在上个命令中查看到的,你正在正在上网的连接,这个别弄错了,弄错了就不起做用了。