解决有些网站打不开,却能ping的通问题

本文介绍如何检测和设置网络最大传输单元(MTU),通过调整MTU值减少数据包碎片,提升网络速度,并提供适用于不同上网方式的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MTU是Maximum Transmission Unit的缩写。意思是网络上传送的最大数据包。MTU的单位是字节。 大部分网络设备的MTU都是1500。如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。如何检测网关的MTU?根据上网方式的不同,分两种情况:

1、路由器上网或局域网上网方式:
    在本机打开命令窗口,执行: 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之间多试几次,就能找到合适的数据包长度了。 如果检测到网关的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)、进入该子项,在右边的窗口里按鼠标右键,选择“新建”->“DWORD值”,输入名称“MTU”,按回车。再用鼠标双击“MTU”,弹出修改窗口: 填入MTU的值。填写前请先把基数设为十进制。 设置好后,需要重启机器才能生效。

  一般来讲,设计好本机的MTU值,可以解决部分网站打不开的情况,但是如果你的共享主机或路由器的MTU设置有问题,有时问题仍然存或,或者出现网速过慢的情况。合理的设置路由器与本机的MTU值,就可以完全解决上述问题,使上网速度达到最大化。

2、ADSL拨号上网方式:
    在本机打开命令窗口,执行: ping -f -l 1472 www.163.com 其中www.163.com可以是任意网址,1472是数据包的长度。请注意,上面的参数是“-l”(小写的L),而不是“-1”。 如果能ping通,表示数据包不需要拆包,可以通过网关发送出去。 如果出现: Packet needs to be fragmented but DF set. 表示数据包需要拆开来发送。此时,减少数据包长度,再执行上面的ping命令。从1400到1472之间多试几次,就能找到合适的数据包长度了。 如果检测到网关的MTU值是1500,不需要修改。 如果网关有防火墙ping不通,可以试试直接把MTU设为1400。
    如何修改本机的MTU? 修改方法如下:

(1)、运行regedit
(2)、浏览到: HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters/Interfaces
(3)、Interfaces下有多个子项,每个子项对应一个网卡。请按如下方法选择网卡:
   (a)确定本机用来连接Internet的拨号连接的IP,可以用ipconfig命令查看,如202.103.122.11;
   (b)用鼠标点击Interfaces上的子项,查看键值列表中的IPAddress项;
   (c)如果IPAddress的键值与(a)中的IP相同,如202.103.122.11,则该子项就是要找的网卡。
(4)、进入该子项,在右边的窗口里按鼠标右键,选择“新建”->“DWORD值”,输入名称“MTU”,按回车。再用鼠标双击“MTU”,弹出修改窗口:填入MTU的值。填写前请先把基数设为十进制。 设置好后,需要重启机器才能生效。

检测MTU的例子:
ping -f -l 1500 www.163.com
C:/WINDOWS>ping -f -l 1500 www.163.com
Pinging www.163.com 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 www.163.com:
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 www.163.com
Pinging www.163.com with 1464 bytes of data:
Reply from 220.181.28.53: bytes=1464 time=10ms TTL=128
Reply from 220.181.28.53: bytes=1464 time<10ms TTL=128
Reply from 220.181.28.53: bytes=1464 time<10ms TTL=128
Reply from 220.181.28.53: bytes=1464 time<10ms TTL=128
Ping statistics for 220.181.28.53:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值