ssh远程执行命令卡住 使用vim、vi、cat等命令,或者在执行shell脚本时,都会莫名的卡住

最大传输单元 (MTU) 是网络层协议(如 TCP)支持的最大数据包的大小(以字节为单位),标头和数据均包括在内。

通过IPsec隧道发送的网络数据包经过加密,然后封装在外部数据包中,以便进行路由。因为封装的内部数据包本身必须适合外部数据包的MTU,所以其MTU必须更小。

网关MTU

您必须配置本地VPN网关,将其使用的MTU限制在1360字节之内,建议MTU设置为1360字节。

对于TCP流量,在TCP协议收发双方通信数据时,会协商每一个报文段所能承载的最大数据长度(MSS)。我们建议您将本地VPN网关的TCP MSS设置为1359字节,便于TCP数据包的封装和传输。

配置好网络,使用XShell远程连接都没有问题。但是在后续工作中发现,使用vim、vi、cat等命令,或者在执行shell脚本时,都会莫名的卡住,使用Ctrl+C也没有任何反应。在使用git拉取仓库也无法连接到git仓库地址。只能强制断开后重新连接。

首先,我们检查了服务器配置,但是新服务器并没有做过多的配置,关闭selinux和firewalld后也没有任何效果。

其次,我们怀疑是否是网络中的交换机或者防火墙的问题,但是检查后也不是这些问题。

最后,通过网络抓包,发现该服务器丢包非常严重,并且我们发现在执行shell脚本的时,虽然使用的XShell软件卡主没有反应,但是该shell脚本在本地是执行完成的。这时让我想到了MTU值,默认网卡MTU为1500,使用带包ping功能发现当包小于1314时可以正常ping通。

总结,mtu默认1500,导致ipsec丢包了。把路由器上的mtu设为1360以内,即可。

您必须配置本地VPN网关,将其使用的MTU限制在1360字节之内,建议MTU设置为1360字节。

ubuntu下修改MTU:

①、为了查看当前以太网接口的MTU大小,使用ifconfig命令如下

bash 复制代码
ifconfig

返回如下:

bash 复制代码
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.79.4  netmask 255.255.240.0  broadcast 172.16.79.255
        inet6 fe80::216:3eff:fe2f:dca5  prefixlen 64  scopeid 0x20<link>
        ether 00:16:3e:2f:dc:a5  txqueuelen 1000  (Ethernet)
        RX packets 197659  bytes 181878959 (181.8 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 98998  bytes 24823206 (24.8 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 34430  bytes 16254917 (16.2 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 34430  bytes 16254917 (16.2 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

②、从上可知,Ubuntu中的可用网卡是:eth0

③、临时改变MTU的值,重启会失效:

bash 复制代码
 ifconfig eth0 mtu 1360 up

④,通过修改配置文件,可以永久有效。

相关推荐
乘云数字DATABUFF3 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
Web3探索者5 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
荣--5 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森5 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜6 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB7 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode8 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220709 天前
如何搭建本地yum源(上)
运维
大树8812 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠12 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql