首先声明,以下内容大部分都是复制自一些网络大神的,经本人修改发帖的,原因就是懒得码字
测试你所在地网络运营商的MTU及MSS数值。本人电脑系统是win7X64位,电脑网卡不接路由器,电脑网卡直连光猫拨号上网,按Win键输入cmd回车再回车,在弹出的窗口下输入以下命令行:ping -l 14xx -f www.baidu.com,-l 为锁定发送数据包大小;-f 为禁止将数据包拆分。
14XX是指定数据包的大小。如果能ping通,表示数据包不需要拆包,可以通过网关发送出去。 如果出现:需要拆分数据包 DF ,表示数据包需要拆开来发送。此时,减少数据包长度,再执行上面的ping命令。从1400到1472之间测试,就能找到最为精准的数据包长度了,比如我家的网络:1450可以通过,1452可以通过,1453就DF了,那么我家网络最为精准的数据包长度就是1452了。把数据包长度加上数据包头28字节,就得到MTU的值。对于我家的网络而言,最大ping通值是1452,路由器需填入的MTU值和MSS值为: 1452+28=1480/MTU值=1480,MTU1480-40=1440/MSS值=1440
根据测试情况修改MTU值。操作步骤:进入路由器主界面-点击“pppoe0”所在行的“Action”,然后点击“Config”,在弹出窗口MTU处修改根据测试情况得到的MTU值,然后点“Save”。其他的eth1-eth4也全部修改MTU值,剩下的eth0和switch0默认值就行。
根据测试情况修改MSS值。路由器主界面点击“Wizards”-“TCP MSS Clamping”,在“MMS”处根据测试情况修改MSS值,然后点击“Apply”修改完毕后,最好断电30秒后重启一下光猫和路由器。
接下来就是修改本地连接的MTU值,电脑win7系统下,按Win键输入cmd回车再回车,在弹出的窗口下输入以下命令行:netsh interface ipv4 show subinterfaces,回车,这是用来查询到你电脑目前系统的MTU值的,比如:我自己的电脑原MTU值是1500的,而且有“本地连接”和“本地连接 2”两个,接着继续输入:netsh interface ipv4 set subinterface “本地连接” mtu=1480 store=persistent,回车,出现:确定,就ok了!再输入:netsh interface ipv4 set subinterface “本地连接 2” mtu=1480 store=persistent,回车,出现:确定,就ok了!这样就已经对本地连接MTU值进行了修改了。再次输入:netsh interface ipv4 show subinterfaces,即可查询到目前系统的MTU值,这时候会发现MTU值已经修改完成了。修改完毕后,重启一下电脑。
通过上述修改后,网页都能正常访问,看图,没修改前总是有一两个打不开
这是我修改MTU值后的ping图
Leave a reply