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

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

相关推荐
wacsii19 分钟前
【Linux进程(一)】Linux 进程初探:操作系统如何管理进程?fork() 为什么返回两次?
linux·运维·服务器
相思难忘成疾1 小时前
从零搭建 Kubernetes 1.30 集群:kubeadm 部署一主多从实战(RHEL 9.3 + Docker + flannel)
linux·运维·kubernetes
PellyKoo1 小时前
【docker】cifs卷改smb密码后容器起不来的解决方法
运维·docker·容器
云飞云共享云桌面1 小时前
1台SolidWorks服务器如何承载10个设计并发?
运维·服务器·网络·3d·制造
未来之窗软件服务2 小时前
WAF负载均衡+蜜罐混淆安全体系-东方仙盟
运维·安全·负载均衡·仙盟创梦ide·东方仙盟·阿雪技术观·网关开发
Linux-lucky2 小时前
46-Linux学习之旅之LVS负载均衡与keepalived高可用
linux·运维·学习·ubuntu·负载均衡·lvs
Jenni see2 小时前
服装厂裁剪自动化怎么搞?自动铺布+激光裁床+六轴机械手裁片分拣,省料省人的实战指南
运维·自动化
阿标在干嘛3 小时前
容器编排的“场景适配”:我们为什么在部分服务中回归了Docker Compose?
运维·docker·容器
墨理学AI3 小时前
虚拟机导致的服务器交换内容占用过大(服务器卡顿)问题 快速解决
运维·服务器