MTU设置不当导致ssh运行命令卡死

2023-06-25,,

MTU:最大网络传输单元,计算机网络课会介绍。

场景:

本地通过VPN连接某个机房内网的linux服务器,连接上之后,运行top命令、vi命令、yum update等需要刷新大量内容时导致ssh卡死,但重连后发现命令最后会自己执行完成。

在网上找了一下解决办法,发现是MTU的问题,但怎么确定本地应该配置什么MTU值呢?实测发现可参考:http://t.zoukankan.com/keystone-p-11410659.html

具体:

    在本地运行如下所示ping命令,含义:发送大小包大小是1460(+28)字节,禁止路由器拆分数据包。

    linux下探测MTU值:
    ping -s 1460 -M do baidu.com windows下探测MTU值:
    ping -f -l 1460 baidu.com

    根据ping的结果分开处理

      如果正常回复,继续尝试增加网络包的值,直至不会出现情况2
      如果出现提示要拆包或请求超时,则减小网络包的大小

    根据上一步找到能成功ping到对端的最大的网络包的大小,然后在该值基础上加28(20字节的ip头部、8字节的icmp封装),就是本地网卡需要配置的MTU值
    查看本地网卡MTU情况(Windows):

    netsh interface ipv4 show subinterfaces

    然后配置VPN对应网络适配器的MTU值(Windows):

    netsh interface ipv4 set subinterface [适配器接口名] mtu=[要设置的MTU值] store=persistent
    # 如 netsh interface ipv4 set subinterface "本地连接" mtu=1456 store=persistent

MTU设置不当导致ssh运行命令卡死的相关教程结束。

《MTU设置不当导致ssh运行命令卡死.doc》

下载本文的Word格式文档,以方便收藏与打印。