搬瓦工
bandwagonhost

Linux VPS SSH 连接失败或超时怎么办?

本文于 2026-07-16 20:04 更新,部分内容具有时效性,如有失效,请留言

Linux VPS 无法通过 SSH 连接时,客户端通常会提示 Connection timed outConnection refusedPermission denied。这些报错看起来都是“连不上服务器”,但对应的原因并不相同。

问题可能出在 IP、端口、用户名和本地网络,也可能是服务商安全组、系统防火墙、SSH 服务或登录权限出现异常。当大家遇到这种情况的时候不要反复尝试密码,也不要马上重装系统,先根据客户端返回的报错来确定排查方向,再按照本文的顺序逐项检查。

一、根据 SSH 报错判断问题类型

SSH 客户端返回的提示,可以帮助我们判断问题出在网络连接、服务端口还是身份验证。先看完整报错,然后再进行后面的检查,可以减少很多没有必要的操作。

报错提示 通常代表什么 优先检查
Connection timed out 客户端无法连接目标 SSH 端口 IP、端口、网络、安全组和防火墙
Connection refused 目标 IP 可以访问,但该端口没有服务接收连接 SSH 服务、监听端口和配置文件
Permission denied 已经连接到 SSH 服务,但身份验证失败 用户名、密码、私钥和登录权限
No route to host 客户端无法找到通往目标 IP 的可用路由 IP、VPS 状态、网络路由和防火墙
Host key verification failed 本地保存的服务器指纹与当前服务器不一致 是否重装过系统或更换过服务器

二、检查 VPS 状态和 SSH 登录信息

正式修改服务器配置之前,先排除 VPS 状态、IP、端口和用户名填写错误。很多 SSH 连接故障,并不需要进入系统修改配置。

1. 确认 VPS 正在运行

登录 VPS 服务商控制面板,确认服务器状态为 RunningActive 或其他正常运行状态。

同时检查以下情况:

  • VPS 是否已经到期或因为欠费暂停;
  • 服务商是否正在维护机房或网络;
  • VPS 是否正在重装系统、迁移或恢复快照;
  • 服务器公网 IP 是否已经更换;
  • IP 是否进入 Nullroute 或其他网络限制状态。

如果 VPS 已经停止,可以先从控制面板启动,等待系统完成开机后再测试 SSH。

如果您使用的是搬瓦工VPS,还需要结合后台 KiwiVM 面板中的服务器状态、SSH 端口和网络信息进行检查,具体可以参考:搬瓦工 SSH 连不上怎么办?最全排查流程与修复命令实战指南

2. 检查 IP 地址和 SSH 端口

复制 IP 时注意不要带入空格、中文符号或其他字符。SSH 默认使用 22 端口,但部分服务商会分配随机端口,安装面板或执行安全脚本后也可能修改 SSH 端口。

使用默认端口连接:

ssh root@VPS_IP

使用自定义端口连接,例如 2222

ssh -p 2222 root@VPS_IP

如果使用 PuTTY、Xshell、FinalShell 或 MobaXterm,也要检查客户端填写的端口是否与服务商后台一致。

3. 检查 SSH 用户名

普通 VPS 经常使用 root 登录,但部分云服务器镜像会提供其他默认用户名,例如:

  • Ubuntu:ubuntu
  • Debian:debian
  • CentOS:centos
  • Amazon Linux:ec2-user

具体用户名应以服务商后台、开通邮件或镜像说明为准。用户名填写错误时,即使密码正确,也会提示 Permission denied

4. 检查密码或 SSH 私钥

SSH 密码区分大小写,输入前检查键盘的 Caps Lock 是否误触。复制密码时,也不要把前后的空格一起复制进去。

如果客户端提示:

Permission denied (publickey)

通常说明服务器要求使用 SSH 私钥登录,而不是密码错误。使用私钥连接的命令如下:

ssh -i /私钥文件路径 -p 22 用户名@VPS_IP

使用图形客户端时,需要在客户端的身份验证设置中选择对应的私钥文件。

5. 更换本地网络测试

电脑能够正常打开网页,并不代表当前网络一定允许访问 SSH 端口。公司网络、校园网、公共 Wi-Fi 或部分宽带线路,可能会限制 22 等端口。

可以让电脑暂时连接手机热点,再尝试一次 SSH,如果更换网络后能够连接,那么问题可能出在原来的宽带、路由器或运营商链路,这时就不需要修改 VPS 配置。

三、检查网络链路、SSH 端口和云防火墙

当我们确认了 VPS 正在运行,登录信息也没有填错后,下一步要查看当前网络能否连接服务器的 SSH 端口。这里只看 Ping 还不够,接下来还要测试 SSH 端口能不能连通。

1. 使用 Ping 辅助检查网络

Windows 用户打开命令提示符,macOS 或 Linux 用户打开终端,然后执行:

ping VPS_IP

如果能够收到回复,只能说明目标 IP 可以响应 ICMP,不能代表 SSH 端口已经放行,也不能说明 SSH 服务正在运行。

如果 Ping 不通,也不能说明 VPS 宕机或 IP 被封。服务商网络、云防火墙或系统防火墙都有可能会关闭 ICMP 响应,即使 SSH 可以正常连接,Ping 仍然可能超时。

2. 在 Windows 测试 SSH 端口

Windows PowerShell 可以使用 Test-NetConnection 测试 TCP 端口:

Test-NetConnection VPS_IP -Port 22

如果 SSH 使用的是 2222 端口:

Test-NetConnection VPS_IP -Port 2222

重点查看结果中的:

TcpTestSucceeded

结果为 True,说明当前网络可以连接该端口,此时如果仍然无法登录,应检查用户名、密码、私钥和 SSH 登录权限。

结果为 False,说明 TCP 连接没有建立,需要继续检查云防火墙、系统防火墙和 SSH 服务。

3. 在 macOS 或 Linux 测试 SSH 端口

macOS 和多数 Linux 系统可以使用 nc 命令:

nc -vz VPS_IP 22

如果使用自定义端口,例如 2222

nc -vz VPS_IP 2222

返回 succeededopen,说明端口可以访问;如果一直超时或提示失败,需要继续检查网络和服务器端配置。

4. 使用不同地区的在线工具测试

本地测试只能反映当前宽带到 VPS 的连接情况,为了进一步判断问题出在本地网络,还是服务器端口在多个地区都无法访问,可以使用在线 TCP 端口检测工具。具体操作可以参考:如何检测 VPS 端口是否被封?三款在线工具推荐,输入 VPS IP 和实际 SSH 端口进行检测。

也可以通过 ping.pe 使用教程,查看不同国家和地区能否连接目标端口。

测试结果可以按下面的情况判断:

  • 国内外节点全部无法连接:检查 SSH 服务、端口和防火墙;
  • 国外可以连接,国内多数地区无法连接:可能是国内网络链路、IP 或端口受到限制;
  • 其他地区可以连接,只有当前网络失败:检查本地宽带、路由器或运营商线路;
  • 端口可以连接,但 SSH 仍然登录失败:检查账户和身份验证设置。

5. 检查服务商安全组和云防火墙

不少云服务器在系统防火墙之外,还有一层由服务商控制的网络防火墙,常见名称包括:

  • Security Group
  • Cloud Firewall
  • Network ACL
  • 入站规则;
  • 端口规则。

这时需要我们进入服务商控制面板,确认已经放行实际使用的 SSH TCP 端口。例如 SSH 使用 22,就需要允许 TCP 入站访问 22 端口。

如果规则只允许指定来源 IP,还要确认当前宽带的公网 IP 仍在允许范围内。家庭宽带重新拨号后,公网 IP 可能发生变化,原来的放行规则也会随之失效。

四、通过控制台检查 SSH 服务和系统配置

如果 TCP 端口无法连接,或者修改 SSH 配置后彻底失联,需要通过服务商提供的控制台进入系统。控制台通常不依赖 SSH 服务,即使端口或防火墙配置错误,也可以用来修复服务器。

服务商后台常见的控制台名称包括:

  • Web Console
  • VNC
  • Serial Console
  • Emergency Console
  • Rescue Mode

进入控制台后,可以按照下面的顺序检查。

1. 检查 SSH 服务是否运行

Debian、Ubuntu 使用:

systemctl status ssh

CentOS、Rocky Linux、AlmaLinux 使用:

systemctl status sshd

如果服务没有运行,可以执行下面的命令启动并设置开机运行。

Debian、Ubuntu:

systemctl start ssh
systemctl enable ssh

CentOS、Rocky Linux、AlmaLinux:

systemctl start sshd
systemctl enable sshd

如果启动失败,不要反复执行启动命令,应继续检查 SSH 配置语法和系统日志。

2. 检查 SSH 实际监听端口

执行:

ss -lntp | grep ssh

也可以检查默认的 22 端口:

ss -lntp | grep ':22'

如果没有任何输出,说明 SSH 没有监听该端口,或者 SSH 服务没有正常启动。

查看 SSH 当前生效的端口配置:

sshd -T | grep '^port'

如果系统提示找不到命令,可以尝试:

/usr/sbin/sshd -T | grep '^port'

假设输出为:

port 2222

那么客户端需要使用 2222 端口,而不是默认的 22

3. 检查 SSH 配置文件

SSH 主配置文件通常位于:

/etc/ssh/sshd_config

查看端口和登录认证配置:

sshd -T | grep -E '^(port|permitrootlogin|passwordauthentication|pubkeyauthentication)'

如果提示找不到命令,再执行:

/usr/sbin/sshd -T | grep -E '^(port|permitrootlogin|passwordauthentication|pubkeyauthentication)'

常见配置含义如下:

Port 22

表示 SSH 使用 22 端口。

PermitRootLogin yes

表示允许 root 登录。

PermitRootLogin prohibit-password

表示 root 只能通过 SSH 密钥登录,不能使用密码。

PasswordAuthentication no

表示服务器已经关闭密码登录。

PubkeyAuthentication yes

表示允许使用 SSH 公钥认证。

如果您准备在恢复连接后改用密钥认证,可以继续参考:搬瓦工 SSH 密钥登录教程:如何禁用密码登录提升 VPS 安全性。操作时要先确认 SSH 密钥能够正常登录,再关闭密码登录,避免把自己锁在服务器外面。

修改配置前,建议先备份:

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

修改完成后不要马上重启 SSH,先检查配置语法:

sshd -t

如果没有输出,通常表示语法检查通过;如果出现报错,需要根据提示修正对应配置。

确认语法没有问题后,再重启 SSH。

Debian、Ubuntu:

systemctl restart ssh

CentOS、Rocky Linux、AlmaLinux:

systemctl restart sshd

使用控制台修改 SSH 时,不要提前关闭控制台窗口。先重新打开一个 SSH 客户端确认可以登录,再退出控制台,避免修改错误后再次失联。

4. 检查系统防火墙

Debian、Ubuntu 常用 UFW,查看当前规则:

ufw status numbered

放行默认 SSH 端口:

ufw allow 22/tcp

如果使用自定义端口,例如 2222

ufw allow 2222/tcp

CentOS、Rocky Linux、AlmaLinux 常用 Firewalld,查看当前规则:

firewall-cmd --list-all

放行默认 SSH 端口:

firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --reload

使用自定义端口时,将 22 替换为实际端口。

如果您准备更换 SSH 端口,需要先放行新端口并确认可以登录后,再删除旧端口规则。不要先关闭 22 端口,否则可能把自己锁在服务器外面。

5. 检查是否被 Fail2Ban 封禁

连续多次输入错误密码后,Fail2Ban 可能会封禁当前公网 IP。

查看 SSH 规则状态:

fail2ban-client status sshd

如果封禁列表中包含当前公网 IP,可以执行:

fail2ban-client set sshd unbanip 你的公网IP

如果系统提示找不到 fail2ban-client,说明服务器可能没有安装 Fail2Ban,可以跳过这一项。

6. 检查磁盘、内存和系统负载

磁盘空间或 inode 被占满后,SSH 服务可能无法正常写入文件,登录过程也可能出现异常。

检查磁盘空间:

df -h

检查 inode:

df -i

检查内存:

free -m

检查系统负载:

uptime

如果根分区、/var 分区或 inode 使用率达到 100%,需要先清理异常日志、缓存或无用文件,再测试 SSH。

7. 查看 SSH 日志

Debian、Ubuntu 可以执行:

journalctl -u ssh -n 100 --no-pager

也可以查看:

tail -n 100 /var/log/auth.log

CentOS、Rocky Linux、AlmaLinux 可以执行:

journalctl -u sshd -n 100 --no-pager

也可以查看:

tail -n 100 /var/log/secure

日志中可能出现用户名不存在、密码错误、私钥不匹配、root 登录被禁止、配置文件语法错误、端口被占用或 IP 被封禁等信息。根据日志中的具体提示处理,会比反复修改配置更有效。

8. 处理服务器指纹不一致

如果 VPS 重装过系统、重置过 SSH,或者同一个 IP 更换了服务器,客户端可能提示:

Host key verification failed

或者:

REMOTE HOST IDENTIFICATION HAS CHANGED

确认服务器确实由您本人重装或更换后,可以删除本地保存的旧指纹:

ssh-keygen -R VPS_IP

使用自定义端口时,可以执行:

ssh-keygen -R "[VPS_IP]:2222"

删除旧记录后重新连接,客户端会要求确认新的服务器指纹。

如果您没有重装系统,也没有收到服务商更换服务器的通知,先不要继续连接。应该先核对 VPS IP 和后台状态,确认这次指纹变化确实来自自己的服务器后,再删除旧记录并重新连接。

如果您通过控制台检查后仍然无法恢复 SSH,并且问题涉及 VPS 宿主机、服务器 IP、机房网络或控制台无法使用,可以参考:搬瓦工客服支持范围详解:哪些问题可以提交工单?,先判断问题是否属于官方处理范围,再决定是否提交工单。

五、总结

Linux VPS SSH 连接失败后,先看客户端返回的是连接超时、连接被拒绝、身份验证失败,还是服务器指纹异常,再处理对应的问题。客户端无法连接端口时,检查 IP、网络、安全组和防火墙;端口可以访问但无法登录时,检查用户名、密码、私钥和 SSH 登录权限。

如果已经无法通过 SSH 进入系统,可以使用服务商提供的 Web Console、VNC、Serial Console 或 Rescue Mode 检查 SSH 服务和系统配置。只要控制台仍然可以使用,大多数端口、防火墙和 SSH 配置问题都不需要重装系统。

重装系统应放在最后考虑,因为重装会清除原有数据和环境,也无法解决 IP 被限制、上游网络异常或服务商云防火墙配置错误等问题。

选购提示新手建议优先选择主流套餐,购买前请结合预算、机房、线路和付款周期确认是否适合自己的使用需求。
面对搬瓦工 (Bandwagon Host) 提供的多样化 VPS 选项,用户可能需要花费一些时间来定位最适合自己的方案。为了简化这一过程,搬瓦工中文网特意筛选了当前市场上反馈较好、咨询较多的几款热销套餐,并将其关键信息汇总成表,以便大家快速浏览和对比。
套餐CPU内存硬盘流量带宽机房价格购买
KVM
(最便宜)
2核1GB20GB1TB1Gbps9个$49.99/年立即选购
3核2GB40GB2TB1Gbps9个$52.99/半年立即选购
CN2 GIA-E
(最推荐)
2核1GB20GB1TB2.5Gbps15个$49.99/季度立即选购
3核2GB40GB2TB2.5Gbps15个$89.99/季度立即选购
SLA
(SLA 保障)
2核1GB20GB1TB2.5Gbps1个$65.89/季立即选购
3核2GB40GB2TB2.5Gbps1个$116.99/季立即选购
香港
(高端)
2核2GB40GB0.5TB1Gbps15个$89.99/月立即选购
4核4GB80GB1TB1Gbps15个$155.99/月立即选购
大阪
(高性价比)
2核2GB40GB0.5TB1.5Gbps15个$49.99/月立即选购
4核4GB80GB1TB1.5Gbps15个$86.99/月立即选购
选择建议
入门使用KVM 套餐价格最低,适合建站、学习 Linux、简单测试和预算有限的新手用户。
综合推荐CN2 GIA-E 套餐线路更好、可选机房更多,适合长期使用,也是多数用户优先考虑的方案。
高端需求香港、东京、大阪等高端线路价格更高,适合对国内访问速度、低延迟和稳定性要求较高的用户。
未经允许不得转载:搬瓦工中文网 » Linux VPS SSH 连接失败或超时怎么办?

搬瓦工(Bandwagonhost)全球线路深度解析与官方原价方案选购看板

本站专注于搬瓦工 VPS 性能实测与链路追踪,深度对比 CN2 GIA、日本软银及香港顶级机房。无论您是跨境电商、外贸办公还是极客开发者,这里都有最专业的技术文档与选购策略,结账时输入专属优惠码 (暂无) 即可锁定全网最高 6.77% 循环折扣。

搬瓦工套餐汇总搬瓦工购买教程