怎样解决某些网站无法访问的问题

 时间:2024-10-19 05:42:04

有些人可能会经常遇到这样一种情况:购买了路由器,安装好之后,一切正常,但总有部分网站访问不了,或者使用计算机直接上网时时候,都是好的,更换了猫之后,发现有些网站无法访问了。这些问题的发生,一般都是因为MTU设置不当造成的,下面就来看看怎样全面的解决此类问题。

工具/原料

能正常上网的路由器

安装了Windows操作系统的计算机

安装了Mac OS X的苹果Macbook或iMac计算机

安装了Linux发行版的计算机

MTU检测

1、大部分网络应用是正常的,说明网络连接是没有问题的,只有某些网站不能访问,说明是访问这些个网站的时候出现了问题,最常见的问题就是MTU设置不当引起的。MTU也称之为最大传输单元(Maximum Transmission Unit),是指在网络中传输的数据块的大小。根据TCP/IP理论,不合理的MTU设置,常常会导致网络性能下降,网络连接失效的问题,而某些网站访问不了,就是由于MTU设置不当而导致IP数据包在传输的过程中出现了分片导致的。因为数据在传输的过程中,会经过很多的中间路由器才能到达访问的网站,如果在路途当中,出现了MTU太小,就会导致数据包被分片拆分,然后在转发。但在转发的过程中,可能会经过不同的路由,导致数据到最终站点时间出现偏差,或者数据在路由转发的过程中丢失,这样就无法在最终站点完成重组(所有分片的数据必须全部到达之后才能重组),进而导致整个数据的丢失。

2、知道了上面说明的问题的原因,接下来就是解决问题的时候了。首先我们来看看怎样确认一个合理的MTU值。使用Windows自带的PING程序,就可以诊断网站的MTU值。在Windows“开始”-“运行”,输入“cmd”然后回车打开命令提示符(Windows8及后续系统可以使用搜索框或者“Win+X”组合键打开命令提示符。

怎样解决某些网站无法访问的问题

3、可以看到,使用PING命令的“-f”(设置DF标志,也就是禁止IP数据包分片)和“-l”(指定数据包的大小)参数,就可以诊断网站的MTU了,在我实验的网络环境下,以访问百度为例,经过反复试验,获得的MTU值为1464。

怎样解决某些网站无法访问的问题

4、超过限定的的MTU值,PING程序就会提示“需要拆分数据包但是设置 DF”,说明IP数据包需要拆分才能正常发送,但由于我们使用了“-f”参数,所以路由器不会在进行下一步转发,这也正是我测试的目的。

怎样解决某些网站无法访问的问题

路由器设置

1、知道了正确的MTU值,那么接下来就可以设置路由器啦。路由器的MTU设置,通常会在路由器的“广域网设置”、“上网设置”或者“Internet设置”之类的菜单里面,一般情况下,路由器都会支持这个参数的调整的。

怎样解决某些网站无法访问的问题

2、看官可能会问了,上文中检测到的MTU值是1464,为什么到路由器设置的是1492呢?这里就要再说明一下了,检测到的MTU实际上是数据块的大小,而在TCP/IP网络,还要加上报头的,典型的值是以太网报头20,如果再加上PPP报头8,是不是就是 1464+20+8=1492呢?

怎样解决某些网站无法访问的问题

3、同理,如果您使用的不是PPP拨号,就不要再加那个8了哦,因为无论是DHCP自动获取IP地址,还是静态IP地址的联网方式,都是典型的以太网联网方式,就没有PPP拨号所需的8个字节了。

怎样解决某些网站无法访问的问题

4、所以您看到了,通常情况下,PPP拨号上网的时候,典型的MTU值是1492,而DHCP自动模式或者静态IP地址模式下,典型的MTU值是1500。当然,也有些路由器允许设置的MTU值偏小,可能为为了更好的照顾线路而对路由器性能做了一些妥协吧。

怎样解决某些网站无法访问的问题

计算机设置

1、如果计算机连接的是路由器,一般是不用对计算机做任何修改的,因为路由器在做NAT转换的时候会进行妥善的处理。但是如果是计算机直接拨号联网,或者直接连接宽带上网(某些运营商可能不是拨号的),没有经过路由器上网的,修改计算机本身的MTU值无疑是更好的解决办法。当然,如果希望保证更好的兼容性,也可以在连接路由器的情况下,修改一下计算机的MTU值。

2、在Windows操作系统,可以通过修改注册表完成。打开注册表编辑器(Windows 7及以前版本,可以在“开始”-“运行”输入“regedit.exe”打开注册表编辑器,Windows 8及以后版本,可以在搜索框搜索注册表编辑器)。

怎样解决某些网站无法访问的问题

3、在注册表编辑器中,切换到HKEY_LOCAL_MACHINE-System-CurrentControlSet-Services-Tcpip-Parameters-Interfaces,找到要设置的网卡(可以通过IP地址信息辨识)。

怎样解决某些网站无法访问的问题

4、找到要设置的网卡之后,可以查看MTU值,如果MTU值不存在,则需要手动创建一个DWORD键值,名称为MTU,数值为检测到的MTU值。

怎样解决某些网站无法访问的问题

5、需要说明的是,如果计算机连接的是路由器,而路由器是使用拨号的方式联网的,检测出来的MTU值在路由器上面的设置和计算机上面的设置会有点差别哦。因为路由器是拨号的,所以路由器设置的“MTU值=检测到的MTU值+以太网报头(20)+PPP报头(8)”,而计算机在经过路由器联网的时候,使用的是以太网协议,因此计算机设置的“MTU值=检测到的MTU值+以太网报头(20)”,注意别混淆了哦。

6、Linux的设置方式比较简单,直接以管理员身份使用“ifconfig eth0 mtu 1492”命令就可以修改MTU值了,其中,eth0是接口的名称。Linux命令行设置的MTU值在重启之后会丢失的,如果希望永久性修改,请参照自己的Linux发行版手册修改。

怎样解决某些网站无法访问的问题

7、苹果Mac OS X也是可以设置MTU值的,方法是打开“系统偏好设置”-“网络”,选择要设置的网络接口,然后单击“高级”。

怎样解决某些网站无法访问的问题

8、在高级设置窗口,切换到“硬件”,然后“配置”选择“手动”,MTU选择“自定”,输入要设置的MTU值就可以了。

怎样解决某些网站无法访问的问题

其他原因

1、某些网站无法访问也可能是其他原因导致的,这些原因超出了本经验讨论的范围,但为了能更好的排查问题,这里将可能的原因罗列一下,以便于当修改MTU解决不了的时候,更好的进行问题排查。

2、病毒感染:可能是计算机或者手机感染了病毒,进行一次全面的杀毒清理工作是很有必要的。

3、hosts文件被篡改:这种情况类似于DNS劫持,但并没有进行完全的劫持,只是对某些网站进行了劫持,查看一下hosts文件是否有访问异常的域名就可以知道了。

4、DNS劫持:这个是比较彻底的域名劫持,您所访问的网站会完全根据劫持者的指令跳转,这些网站可能存在,也可能不存在,完全取决于劫持者的心情。

5、网站瘫痪或不可访问:这种情况出现的比较少,但也是可能的,使用PING命令就可以轻易检测是不是网站本身处在不可访问状态。

优化与分享

1、本经验是根据实际操作完成,因路由器设置不同,可能会有出入,设置时请以实际路由器手册为准。如果您有任何意见或建议,可以留言提出,我会尽力改正和完善经验,以帮助更多有需要的人。

2、如果本经验对您有些许帮助,移动手指,点赞支持一下啦,您的支持是书写经验的最大动力哦^^。

  • 网页上有错误怎么解决
  • 某个网址或网站打不开怎么办
  • 无法打开网页怎么解决
  • 如何打开IE浏览器“Internet选项”窗口?
  • ie浏览器网页打不开怎么处理
  • 热门搜索
    屋顶上的小孩手抄报 初中手抄报图片 小学四年级数学手抄报 关于生活的手抄报 建党95周年手抄报 森林报手抄报 安全手抄报的资料 关于手抄报的图案 学会感恩手抄报内容 绿色校园手抄报资料