Windows 上最大传输单元 MTU 值的查看和设置

本贴最后更新于 2659 天前,其中的信息可能已经渤澥桑田

最近使用 ssh 工具在 VPN 环境下连接一个生产环境的 Linux 主机的时候,发现经常出现输入命令后卡死的情况。最开始以为是 Linux 主机的问题,问了一些老同事之后发现原来是我自己电脑的最大传输单元 MTU 和服务器端接受的最大传输单元不匹配导致连接不通畅,换用其它电脑连接就不会出现这样的情况。Windows 上以太网 mtu 值被设定为 1500,但是远程连接的 Linux 主机的 MTU 值是小于这个值的。在前辈的提示之后在网上搜索了一些查看和修改 MTU 值的方法,动手修改后成功解决了这个问题。

参考资料

什么是 MTU,可以参考这篇文章:# 什么是 MTU,如何检测和设置路由器 MTU 值
为什么 MTU 的默认值会是 1500,可以参考这个知乎问答: # 为什么以太网 mtu 值被设定为 1500?
如何查看和设置: # windows10 系统下设置 mtu 值的方法

mut 即“最大传输单位”,适当地修改 MTU 值可提升 windows10 系统电脑的网速。那么,Windows10 系统下该怎样设置 mtu 值呢?

步骤如下:

1、在开始菜单上单击右键,选择【命令提示符(管理员)】;

设置 mtu 值的方法一步骤 1

2、在命令提示符中输入:netsh interface ipv4 show subinterfaces 按下回车键查看当前的 mtu 值;


设置 mtu 值的方法一步骤 2

3、接着按下面格式输入:netsh interface ipv4 set subinterface "连接名" mtu=值 store=persistent (如:netsh interface ipv4 set subinterface "WLAN" mtu=1492 store=persistent) 按下回车键,出现“确定”提示 则说明修改完成。


设置 mtu 值的方法一步骤 3

如何根据连接的网战或者 IP 来确定 mtu 的值呢?

1、同样先打开命令提示符(管理员), 输入:ping -l 1472 -f www.baidu.com (探测百度为例),请求将一个不允许分割的 1472 字节的数据包发送出去;

取值步骤 1

2、若是出现传输失败,提示需要拆分数据包的情况,则说明当前网络的 MTU 值要比指定的 1472 小,因此我们就适当调小数据包的大小(比如 1450),输入:ping -l 1450 -f www.baidu.com 按下回车键;

取值步骤 2

3、如果出现传输成功,则说明当前网络的 MTU 值比 1450 要大。于是我们需要稍微调大数值(比如 1460),以便求得最为精确的网络 MTU 值,如图:


取值步骤 3

4、通过取值之后我们再通过上述方法进行设置即可。

  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    946 引用 • 943 回帖
  • 运维

    互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。

    149 引用 • 257 回帖
  • 摘抄引用
    2 引用 • 3 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...