十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
答:1、找到服务器的MTU值 找到一台终端:输入以下命令: ping -c (number) -M do -s (bytes) IP 其中number是次数、是封包大校结果如下 Frag needed and DF set (mtu = 1500) 意思是说,这个封包的大小大于MTU能够接受的大小,如果要达到最佳化
创新互联从2013年成立,先为金台等服务建站,金台等地企业,进行企业商务咨询服务。为金台企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
问题 :如果能ping通外网域名,但是无法访问,这种情况通常是因为网卡的mtu值过高。那么该如何查看网卡的mtu值以及判断mtu值是否过高呢?
windows下可以使用netsh命令查看接口的mtu值
Linux下可以使用ip a 或者 netstat -i查看mtu值
为了确认mtu值是否过高,需要检测网关的mtu值
Windows下检测网关mtu值的命令如下
linux下检测网关mtu值的命令
将上述命令中的gateway替换为网关地址,并不断的调整size的大小,找到最佳的mtu值,即为网关的mtu值。(示例:1500无法通过网关,1400可以通过网关,则说明最佳mtu值在1400和1500之间,可以进一步利用二分查找算法,找到最佳mtu值)
若本机的mtu值较大,则会导致无法访问外网;若本机的mtu较小,却没有完全利用网络性能。因此,设置最合适的本地mtu值即是让本地的mtu等于网关的mtu值。
设置本机的mtu为网关的mtu,windows下利用如下命令:
linux 下的命令为:
将上述命令中的name替换为网卡名称,size替换为最佳mtu值。
若网页能够正常访问,则调整mtu值完成。
第一步、测出自己当前网络最佳MTU值,敲下 “Win键+R”,然后在运行窗口后输入“cmd”,再敲回车键。
第二步、在命令提示符窗口输入以下命令(建议直接复制,以免误将小写字母 l 写为数字 1),输好之后敲击回车。ping -l 1472 -f
这条命令的意思是向 (百度主页)发送一个探测请求,请求将一个不允许分割的 1472 字节的数据包发送出去。
第三步、要是出现传输失败,提示需要拆分数据包的情况,就说明当前网络的 MTU 值要比指定的 1472 小,因此我们就适当调小数据包的大小(比如 1450),再发送一条类似的命令。
第四步、如果出现传输成功,就说明当前网络的 MTU 值比 1450 要大。于是我们需要稍微调大数值(比如1460),以便求得最为精确的网络 MTU 值。
第五步、然后通过不断修正数据包的大小,最终得到当前网络的 MTU 值。比如小编我这里,测试 1464 通过,但 1465 失败,所以小编的网络 MTU 值为 1464。
在此需要特别说明的是,当设置本地 MTU 值,必须牢记要将这个测得的值再加上 28,即 1464+28 = 1492。