最近使用 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、通过取值之后我们再通过上述方法进行设置即可。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于