最近使用ssh工具在VPN环境下连接一个生产环境的Linux主机的时候,发现经常出现输入命令后卡死的情况。最开始以为是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、通过取值之后我们再通过上述方法进行设置即可。