这些日子查备案搞的我到处迁服务器。在家修改网页时突然发现FTP的上传速度巨慢,甚至出现FTP上传失败的提示。可自己家中是10M的光纤,理应不会出现这种情况。仔细一想,10M光纤下接了双路由——这边联通限制一个账号多台电脑共享上网。问题出在我的WHR-HP-G54上,其MTU默认值为1500~
科普普及:
MTU就是Maximum Transmission Unit,此值设定TCP/IP协议传输数据报时的最大传输单元。设置合适的MTU值可以得到更好的上网速度。 就目前来说MTU的最大值就是1500,如果是千兆设备互连时有可能将这个值增大,比如改到1496。目前常用的几种连接里面MTU有如下的默认值:
• 1500. 以太网Ethernet信息包最大值,一般的设备(系统)也是默认值。
• 1492. PPPoE 的最佳值
• 1472. 使用 ping 的最大值 (大于此值的信息包会先被分解)
• 1468. DHCP的最佳值
• 1430. VPN和PPTP 的最佳值
• 576. 拨号连接到ISP的标准值
如何获知MTU的值方法有多种,最简单的是直接询问下技术人员,让他告诉你,但有时这个方法行不通。可以自行测试一下MTU值,使用常用的ping命令,但是还要加上“-f ,-l size”两个参数。“-f ”表示你所发送的数据包不被路由器折开即使超过单个数据包的最大值;“-l size”表示设定发送数据包的大小。首先使用最大值来测试,以太网的用1500,ADSL的用1492 。这样可以减少几次测试。使用如下命令:
ping -f -l 1500 www.163.com,

ping之后出现“Packet needs to be fragmented but DF set”表明MTU值要比我们发送的数据包小,可以适当减少数据包的大小,直至

找到的数据是数据包的大小,但每个数据包都具有包头,这个包头部分占去28个字节,所以最终的MTU数值其实是:1464+28=1492。
Linux系统检测
在终端输入:ping -c <number> -M do -s <bytes> IP
如果发现数值为1472,那么MTU=1472+28=1500
修改MTU值
windows98
修改注册表:
HKEY_Local_Macchine>System>CurrentControlSet>Services>Class>NetTrans>000n
最后一个n是数字,看看下面有没有网卡的相关信息,如果有,在选择的网卡接口后按下"编辑">"新建">"选择新增DWORD值",将新增的项命名为MaxMTM,并右击选择"修改",选中"十进制",输入找到的MTU值,如:1492.
windows 2000
HKEY_Local_Macchine>System>CurrentControlSet>Services>Tcpip>Parameters>interface
在下面有多个接口,会有一个与网卡设置相同的接口,在选择的网卡接口后按下"编辑">"新建">"选择新增DWORD值",将新增的项命名为MTU,并右击选择"修改",选中"十进制",输入找到的MTU值.
Linux
使用ifconfig加mtu参数即可:
ifconfig eth0 met 1500:就可以了
科普普及:
MTU就是Maximum Transmission Unit,此值设定TCP/IP协议传输数据报时的最大传输单元。设置合适的MTU值可以得到更好的上网速度。 就目前来说MTU的最大值就是1500,如果是千兆设备互连时有可能将这个值增大,比如改到1496。目前常用的几种连接里面MTU有如下的默认值:
• 1500. 以太网Ethernet信息包最大值,一般的设备(系统)也是默认值。
• 1492. PPPoE 的最佳值
• 1472. 使用 ping 的最大值 (大于此值的信息包会先被分解)
• 1468. DHCP的最佳值
• 1430. VPN和PPTP 的最佳值
• 576. 拨号连接到ISP的标准值
如何获知MTU的值方法有多种,最简单的是直接询问下技术人员,让他告诉你,但有时这个方法行不通。可以自行测试一下MTU值,使用常用的ping命令,但是还要加上“-f ,-l size”两个参数。“-f ”表示你所发送的数据包不被路由器折开即使超过单个数据包的最大值;“-l size”表示设定发送数据包的大小。首先使用最大值来测试,以太网的用1500,ADSL的用1492 。这样可以减少几次测试。使用如下命令:
ping -f -l 1500 www.163.com,

ping之后出现“Packet needs to be fragmented but DF set”表明MTU值要比我们发送的数据包小,可以适当减少数据包的大小,直至

找到的数据是数据包的大小,但每个数据包都具有包头,这个包头部分占去28个字节,所以最终的MTU数值其实是:1464+28=1492。
Linux系统检测
在终端输入:ping -c <number> -M do -s <bytes> IP
如果发现数值为1472,那么MTU=1472+28=1500
修改MTU值
windows98
修改注册表:
HKEY_Local_Macchine>System>CurrentControlSet>Services>Class>NetTrans>000n
最后一个n是数字,看看下面有没有网卡的相关信息,如果有,在选择的网卡接口后按下"编辑">"新建">"选择新增DWORD值",将新增的项命名为MaxMTM,并右击选择"修改",选中"十进制",输入找到的MTU值,如:1492.
windows 2000
HKEY_Local_Macchine>System>CurrentControlSet>Services>Tcpip>Parameters>interface
在下面有多个接口,会有一个与网卡设置相同的接口,在选择的网卡接口后按下"编辑">"新建">"选择新增DWORD值",将新增的项命名为MTU,并右击选择"修改",选中"十进制",输入找到的MTU值.
Linux
使用ifconfig加mtu参数即可:
ifconfig eth0 met 1500:就可以了
网络服务器的安全设置教程
Hishop 网店系统 
