SSH 连接 VPS 提示 Connection refused 报错怎么修?

文章导读
SSH 连接出现 Connection refused 通常表示目标服务器的 SSH 服务未运行、端口被防火墙拦截或 IP 被安全策略禁止。最推荐的处理方向是优先通过云厂商控制台或 VNC 登录服务器检查 SSH 服务状态,风险边界在于修改防火墙规则可能导致无法远程连接,需保留备用访问通道。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 常见问题
A A

SSH 连接出现 Connection refused 通常表示目标服务器的 SSH 服务未运行、端口被防火墙拦截或 IP 被安全策略禁止。最推荐的处理方向是优先通过云厂商控制台或 VNC 登录服务器检查 SSH 服务状态,风险边界在于修改防火墙规则可能导致无法远程连接,需保留备用访问通道。

先说结论:Connection refused 是 TCP 层拒绝连接,并非密码错误或超时,需重点排查服务进程与网络放行策略。

  • 先确认:服务器 SSH 服务进程是否存活且监听正确端口
  • 先处理:检查云服务器安全组和本地防火墙是否放行 SSH 端口
  • 再验证:使用 telnet 或 nc 命令测试端口连通性

命令速用版

# 查看 SSH 服务状态
systemctl status sshd
# 查看端口监听情况
netstat -tulpn | grep ssh
# 测试端口连通性
telnet <服务器 IP> <SSH 端口>

为什么会这样

Connection refused 报错的本质是客户端发出的 TCP 连接请求被服务器主动拒绝。

这通常发生在三种场景:目标主机上没有程序监听指定端口、防火墙规则直接丢弃并返回拒绝信号、或 SSH 服务配置限制了访问 IP。与 Connection timed out 不同,refused 代表网络是通的,但服务不可用。

SSH 连接 VPS 提示 Connection refused 报错怎么修?

分步处理

步骤 1:确认本地网络环境
适用场景:排除本地网络波动。操作动作:尝试 ping 服务器 IP。验证结果:如果 ping 不通,检查本地路由或服务器是否宕机。风险边界:部分服务器禁 ping,不通不代表服务不可用。

步骤 2:检查 SSH 服务状态
适用场景:SSH 无法连接时。操作动作:通过云控制台 VNC 或物理终端登录,运行 systemctl status sshd。验证结果:状态应为 active (running)。风险边界:若服务未运行,执行 systemctl start sshd 启动,注意不要随意停止正在运行的服务。

步骤 3:检查端口监听
适用场景:服务运行但仍无法连接。操作动作:运行 netstat -tulpn | grep 22。验证结果:确认 SSH 监听在 0.0.0.0 或具体网卡 IP。风险边界:如果只监听 127.0.0.1,外部无法连接,需修改 sshd_config 配置。

SSH 连接 VPS 提示 Connection refused 报错怎么修?

步骤 4:检查防火墙与安全组
适用场景:服务正常但端口不通。操作动作:检查服务器内部防火墙(如 ufw 或 firewalld)及云厂商安全组。验证结果:确保入站规则允许 TCP 协议的 SSH 端口。风险边界:修改防火墙规则前需确保当前会话未断开或已有 VNC 备用通道,避免规则生效瞬间丢失连接。

怎么验证是否生效

在本地终端执行 ssh -v user@ip 观察调试输出。如果看到 Connected 字样且开始请求密码或密钥,说明连接已建立。也可以使用 nc -zv <IP> <端口> 测试,返回 succeeded 即为生效。

SSH 连接 VPS 提示 Connection refused 报错怎么修?

常见坑

  • 云安全组未配置:服务器内部防火墙放行了,但云平台安全组拦截了流量,需两边同时检查。
  • SSH 端口修改未同步:修改了 sshd_config 端口后,防火墙和安全组未更新对应规则,导致新端口被拦截。
  • Fail2ban 误封:多次密码错误导致 IP 被 Fail2ban 临时禁止,需检查 /var/log/fail2ban.log 并解封 IP。

常见问题

Connection refused 和 Connection timed out 有什么区别?

Connection refused 表示服务器主动拒绝连接,通常是服务未启动或端口被防火墙拒绝;Connection timed out 表示数据包发出后无响应,通常是网络不通或防火墙丢弃包。

修改 SSH 端口后连不上怎么办?

修改端口后必须同步更新云服务器安全组规则和内部防火墙规则,否则新端口会被拦截。

root 用户无法 SSH 登录是 Connection refused 吗?

不是,root 权限问题通常提示 Permission denied,Connection refused 是网络层或服务层未响应。