HCRM博客

Xshell连接CentOS遇Connection reset by peer?快速排查指南

Xshell连CentOS提示Connection reset by peer?别慌,跟着这份踩坑笔记一次修完

Xshell连CentOS提示Connection reset by peer排查

Xshell连接CentOS遇Connection reset by peer?快速排查指南-图1

远程窗口刚弹出,一行冷冰冰的“Connection reset by peer”就把人踢回原点,这种瞬间掉线的酸爽,谁碰谁知道。别急着砸键盘,问题真没想象中玄乎,把整条链路掰开揉碎,十分钟就能定位。

先确认是不是“对面”主动翻脸

SSH 会话被重置,最常见的导火索就是服务器端主动断开。登到云平台控制台,看一眼实例状态,如果机器刚重启过,或者内核把 sshd 进程杀掉了,Xshell 这边当然会被“请”出去。执行

last -x | head

能查到最近的重启记录;再

systemctl status sshd

Xshell连接CentOS遇Connection reset by peer?快速排查指南-图2

若看到 inactive (dead) 直接启动服务:

systemctl start sshd && systemctl enable sshd

顺手把 SELinux 临时放一边:

setenforce 0

再连一次,能进去就说明是 SELinux 策略更新后把端口绑死了,回头用 audit2allow 写条策略即可。

端口与防火墙:别被“假开放”忽悠

Xshell连接CentOS遇Connection reset by peer?快速排查指南-图3

很多新手在安全组里放行 22 就完事,却忘了 CentOS 自带的 firewalld。执行

firewall-cmd --list-all

若 ssh 服务不在列表,立刻加进去:

firewall-cmd --permanent --add-service=ssh && firewall-cmd --reload

云厂商安全组+系统防火墙双重关卡,任何一边漏掉,包都会被无情丢弃,Xshell 只能收到一个 Reset。

IP 冲突与 NAT 复用:同一局域网里的暗箭

公司内网如果给 CentOS 设了静态地址,却和 DHCP 池重叠,Linux 会瞬间丢包重置。先

ip addr show

确认 MAC 与云平台控制台绑定一致;再

arping -I eth0 <网关IP>

若出现 duplicate 字样,立刻改静态地址到空闲段,重启网络服务,断线问题秒没。

MTU 与 TCP MSS:被忽视的小字节大坑

云主机走 VPC 时,默认 MTU 1500 常因隧道封装被砍到 1450。Linux 没及时调整,大包分片失败,握手直接 Reset。临时把网卡 MTU 改小:

ip link set eth0 mtu 1450

再连,稳定就说明是 MTU 黑洞。写进

/etc/sysconfig/network-scripts/ifcfg-eth0

里,省得重启又翻车。

sshd 配置:自己人也能“误杀”

MaxStartups 默认 10:30:60,瞬间并发太高,新连接直接被 reset。编辑

/etc/ssh/sshd_config

MaxStartups 100:30:200

调大,重启 sshd。再顺手把

ClientAliveInterval 30

ClientAliveCountMax 6

加上,防止空闲会话被防火墙老化策略踢掉。

云厂商限速与 DDoS 清洗:看不见的流量剪刀

部分平台在公网 IP 遭遇小包洪水时,会直接把 22 端口拉进黑洞,表现为间歇性 reset。登录云监控看公网入带宽是否瞬间打满,若触发清洗,提交工单申请解封,或者换弹性 IP 先顶着。

本地电脑“帮倒忙”的骚操作

1. 杀毒流量扫描:某些安全软件会注入代理,伪造 RST。把 Xshell 主程序加入白名单再试。

多网卡路由错乱:笔记本同时连 Wi-Fi 和有线,默认路由跳到外网,返回包回不到 Xshell。禁用多余网卡,或手动写一条到服务器网段的静态路由。

旧版本 Xshell:6.0 Build 0191 之前的 OpenSSL 补丁不完整,握手阶段直接 reset。升级到最新版,秒解决。

一条命令自检清单

把下面脚本丢到 CentOS,一键输出常见雷点:

#!/bin/bash

echo '===SSH 监听==='

netstat -tunlp | grep :22

echo '===防火墙==='

firewall-cmd --list-all

echo '===SELinux==='

getenforce

echo '===最近重启==='

last -x | head -3

echo '===IP 冲突==='

ip addr show | grep 'inet '

跑完截图发给运维,比拍桌子有用。

排查顺序

1. 控制台看实例存活 → 2. 本地 telnet 22 通不通 → 3. 服务器端 sshd 状态 → 4. 防火墙/安全组 → 5. IP 冲突/MTU → 6. 本地软件干扰。按这个顺序来,基本三遍之内就能逮住真凶。

远程连接掉线不可怕,可怕的是一顿乱操作把问题越埋越深。把上面每一步都当成体检项目,逐项打钩,Xshell 连 CentOS 提示 Connection reset by peer 的乌云自然散去。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/42014.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~