如何解决MTU值设置不当造成网站无法访问的问题

来源:网络   编辑:朵朵   发布日期:2019-02-15   字体:【  
【文章摘要】昨天郁闷的是baidu和google竟然无法打开,郁闷的很!刚开始以为是网线不好,网线弄好了,可是还是不行.最后怀疑是装了什么插件,屏蔽了这些网站,可是后来查杀,没有恶意插件!
  昨天郁闷的是baidu和google竟然无法打开,郁闷的很!刚开始以为是网线不好,网线弄好了,可是还是不行.最后怀疑是装了什么插件,屏蔽了这些网站,可是后来查杀,没有恶意插件!
中毒了?病毒一般不会出现这样的情况啊!郁闷!
  我用ping -l的方法测试了下网站,后来发现原来是MTU在作怪!为了让大家不再被此类故障捆扰,特地在网上搜集和整理这方面的内容!希望可以给大家带来方便!
MTU设置 
  MTU,即Maximum Transmission Unit(最大传输单元),意思是网络上传送的最大数据包。MTU的单位是字节。 大部分网络设备的MTU都是1500。如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。 3、如何检测网关的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。
  此值设定TCP/IP协议传输数据报时的最大传输单元。设置合适的MTU值可以解决“部分网站打不开”、“上网速度慢”等问题,并且可以适当提升上网速度。 
设置多大的MTU值取决于你的上网方式,不同的上网方式支持不同的MTU,下面列出了一些上网方式的MTU值: 
EtherNet(一般上网方式,默认值):1500 
PPPoE/ADSL:1492 
Dial Up/Modem:576 
  问题一:知道了我的上网方式,如何设置MTU值? 
1. 在 『开始』>『运行』中,键入regedit,点确定; 
2. 选择『HKEY_Local_Machine』>『SYSTEM』>『CurrentControlSet』>『Services』>『Tcpip』>『Parameters』>『interface』; 
3. 在 interface 底下可能有很多的选项,你一个一个的去看,会有一个选项IPaddress与你的网卡的 IP 相同,那个就是你要挑选的选项啦!然后同样的在该选项上选择『编辑』>『新建』>『DWORD值』之后,建立一个名为『MTU』的DWORD,然后双击修改,选择十进制,填入合适 MTU 值,确定!大功告成! 
  问题二:我不知道自己的上网方式,如何确定MTU值呢? 
ping -f -l 1500 127.0.0.1 
C:\WINDOWS>ping -f -l 1500 127.0.0.1 
Pinging 127.0.0.1 with 1500 bytes of data: 
Packet needs to be fragmented but DF set. 
Packet needs to be fragmented but DF set. 
Packet needs to be fragmented but DF set. 
Packet needs to be fragmented but DF set. 
Ping statistics for 127.0.0.1: 
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss), Approximate round trip times in milli-seconds: 
Minimum = 0ms, Maximum = 0ms, Average = 0ms 
  上面的式子中,-l 是 L 的小写(不是 1 喔),1500 是我们要测的 MTU 值,结果出现了 Packet needs to be fragmented but DF set. 这个东西,那表示MTU值太大了,你需要更小的 MTU 值才行!好啦!那假设我们使用 1464 来测试时: 
C:\WINDOWS>ping -f -l 1464 127.0.0.1 
Pinging 127.0.0.1 with 1464 bytes of data: 
Reply from 127.0.0.1: bytes=1464 time=10ms TTL=128 
Reply from 127.0.0.1: bytes=1464 time<10ms TTL=128 
Reply from 127.0.0.1: bytes=1464 time<10ms TTL=128 
Reply from 127.0.0.1: bytes=1464 time<10ms TTL=128 
Ping statistics for 127.0.0.1: 
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: 
Minimum = 0ms, Maximum = 10ms, Average = 2ms 
  结果出现了回应了!这表示这一个 MTU 值是可行的!不过,强烈建议找出可行的最大 MTU 值!这样一来,在设定的时候,才可以达到最佳的网速! 
找出 MTU 值:利用上面这个方法找到的数值还不是 MTU 喔!由于一些封包上面的问题,上面这个值再加上 28 才是我们所需要的 MTU 值!所以,在上面的例子中,我们所需要的 MTU 值是 1464+28=1492! 
  一般来讲,设计好本机的MTU值,可以解决部分网站打不开的情况,但是如果你的共享主机或路由器的MTU设置有问题,有时问题仍然存或,或者出现网速过慢的情况。合理的设置路由器与本机的MTU值,就可以完全解决上述问题,使上网速度达到最大化。
  一般情况下一个机器装好之后某人的MTU完全是可以满足我们的需求的,但是有的时候网络做了改动可能就造成了这种状况的出现!

关键词:如何,解决,MTU,值,设置,不当,造成,网站,无法

转载请保留:https://www.uguu.com/article-30996.html

免责声明:文章仅代表作者个人观点,不代表本站赞同其观点和对其真实性负责,版权归原作者及原出处所有。文章仅供学习交流,并不用于任何商业目的,部分文章来源于网络,如稿件涉及您的版权、名益权等问题,请联系fankui#uguu.com(#换成@),我们将根据著作权人的要求,立即更正或删除有关内容!