LUCKVM / CLOUD INFRASTRUCTURE

探索 LuckVM

首页 全球加速 域名注册 帮助中心 新闻中心 关于我们

VPS连不上怎么办,SSH连接失败排查与恢复指南

SSH连不上VPS,先保留完整报错,再决定查哪里。连接超时、连接被拒绝和认证失败,通常对应不同的排查入口。

如果提示连接超时,应先检查IP、端口和网络访问规则;如果提示连接被拒绝,应重点确认目标端口是否有服务监听;如果提示密码或密钥认证失败,说明连接已经进入认证阶段,应检查用户名和凭据。

本文面向通过SSH管理的Linux VPS。服务器端命令以使用systemd的Ubuntu、Debian等常见发行版为例,其他系统的服务名和日志路径可能不同。Windows远程桌面连接故障不在本文范围内。

SSH连接三种常见报错终端截图:超时、拒绝连接、认证失败
SSH连接三种典型报错:Connection timed out(连接超时)、Connection refused(连接被拒绝)、Permission denied(认证失败)。不同报错对应不同的排查方向,这是定位问题的第一步。

先根据SSH报错确定排查方向

下面列出常见报错文本及其含义,不是某台LuckVM服务器的实测记录。单条报错只能缩小范围,不能直接证明唯一原因。

SSH连接失败的常见报错
报错或现象 通常意味着什么 优先检查
Connection timed out 在等待时间内没有完成对应连接阶段 公网IP、端口、网络路径、过滤规则
Connection refused 连接请求收到拒绝响应 端口是否正确、SSH是否监听、是否存在主动拒绝规则
Permission denied (publickey,password) SSH连接已进入认证阶段,但所提供的认证未通过 用户名、密码、密钥、登录策略
Could not resolve hostname 主机名没有被正确解析 域名拼写、DNS记录、本地解析环境
REMOTE HOST IDENTIFICATION HAS CHANGED 服务器主机密钥与本机记录不一致 是否重装、IP是否变更、服务器身份是否可信

如果网站能打开但SSH连不上,不能据此认定整台VPS断网:网站通常使用80或443端口,而SSH默认使用22端口,两者可以受到不同规则控制。

第一步:核对IP、端口和用户名

进入服务商控制台,确认实例处于运行状态,并核对公网IP与实际SSH端口。重装系统、更换实例或修改网络配置后,旧的连接配置可能已经失效。

  • IP:本机通过公网连接时,应使用可达的公网地址;私有地址需要相应的内网或隧道环境。
  • 端口:默认通常是22,但经过自定义修改的实例应使用实际端口。
  • 用户名:应以系统镜像或创建实例时的说明为准,不能假定所有系统都允许root直接登录。

Windows PowerShell中可以先保存本次排查使用的参数。请将以下值替换为自己的实际信息;192.0.2.10是文档示例地址,不能用于实际连接:

$serverIp = '192.0.2.10'
$sshPort = 22
$sshUser = 'ubuntu'
ssh -p $sshPort "$sshUser@$serverIp"

其中,-p指定SSH端口。需要已安装OpenSSH客户端;如果系统提示找不到ssh命令,应先处理本机客户端安装问题。

预期结果:获得针对正确目标的连接结果,排除连错IP、端口或账号等基础问题。后续PowerShell命令沿用本节变量,应在同一会话中执行。

第二步:从本机检查TCP端口

在Windows PowerShell中执行:

Test-NetConnection -ComputerName $serverIp -Port $sshPort -InformationLevel Detailed
Windows PowerShell中执行Test-NetConnection测试端口连通性截图
在Windows PowerShell中执行Test-NetConnection的测试结果,重点关注TcpTestSucceeded字段为True表示端口连通,为False表示端口不可达。

重点查看TcpTestSucceeded字段,而不是只看Ping结果。

  • True:当次TCP连接测试成功,可以继续检查SSH握手与认证;这不代表登录凭据正确。
  • False:当次端口测试失败,需继续排查服务监听、访问规则或网络路径,不能直接判断服务器已经关机。

在Linux或macOS终端中,可以使用已安装的OpenSSH客户端输出详细连接信息:

ssh -vvv -o ConnectTimeout=10 -p 22 ubuntu@192.0.2.10

执行前同样需要替换用户名、地址与端口。-vvv增加调试输出,ConnectTimeout=10设置连接超时时间为10秒。

预期结果:区分连接尚未建立、SSH握手异常和认证失败。日志中出现本地文件路径、账号或IP时,对外分享前应按需脱敏,不要附带私钥内容。

如果换到手机热点后可以连接,而原网络持续失败,应重点比较两边的访问路径、来源IP限制及本地网络策略;不要仅凭一次成功就排除服务器端的间歇性问题。

第三步:通过控制台检查SSH服务

当公网SSH不可用时,可以使用服务商提供的网页控制台、VNC或串口控制台进入系统,具体以当前产品支持的功能为准。若没有可用入口,应联系技术支持协助恢复。

先查看监听端口和服务状态。以下命令在服务器控制台中执行:

sudo ss -lntp
sudo systemctl status ssh --no-pager
Linux终端中执行ss -lntp查看监听端口和systemctl status ssh查看服务状态截图
在服务器控制台中执行ss -lntp查看22端口是否有sshd进程监听,再用systemctl status ssh确认SSH服务处于active(running)状态,这是判断服务端正常的关键。

Ubuntu、Debian常见服务名为ssh。若提示该单元不存在,可检查发行版是否使用sshd:

sudo systemctl status sshd --no-pager

预期结果:确认SSH相关服务状态,并在监听列表中找到实际端口。某些系统采用socket激活,应结合ssh.socket等相关单元与实际监听结果判断,不能只凭服务显示inactive认定故障。

如果服务只监听127.0.0.1,公网客户端无法直接连接该监听地址;如果端口与客户端配置不同,则应核对最近的配置变更。

修改过SSH配置后,先检查语法

sudo /usr/sbin/sshd -t

路径以实际安装位置为准。正常情况下,该检查成功时不输出文本并以状态码0退出;出现错误时,通常会给出相关文件或配置项。

继续查看近期日志。使用ssh服务名的系统可执行:

sudo journalctl -u ssh --since "30 minutes ago" --no-pager

服务名为sshd时,将命令中的ssh替换为sshd。如果日志为空,还需检查发行版的认证日志或系统日志配置。

只有确认问题并通过配置检查后,才考虑重新加载相应服务。保留可用的控制台或旧会话,避免在没有恢复入口的情况下反复修改配置。

第四步:检查防火墙与安全组

SSH服务正常监听,并不代表公网请求一定能到达。常见的过滤位置包括云平台安全组、系统防火墙,以及Fail2ban等登录防护工具。

先检查服务商控制台中的入站规则

LuckVM后台安全组防火墙入站规则配置界面截图
LuckVM云服务器控制台安全组入站规则配置界面,需要确认SSH端口22允许来自0.0.0.0/0的TCP入站访问,如果只允许特定IP段,更换网络(比如从公司网络换到家里)后就会被拦截。

核对是否允许实际SSH端口的TCP入站访问,并检查来源地址范围。如果规则只允许办公室公网IP,切换到家庭网络后就可能被拦截。

使用IPv6连接时还需检查IPv6规则,不能把允许IPv4来源视为已允许IPv6来源。

再检查系统正在使用的防火墙

以下命令按系统实际使用的工具选择,不需要为了排查而同时安装或启用多套防火墙:

# 使用UFW的系统
sudo ufw status verbose

# 使用firewalld的系统:先确认活动区域
sudo firewall-cmd --get-active-zones
sudo firewall-cmd --list-all --zone=public

# 使用nftables的系统
sudo nft list ruleset

firewalld示例中的public需替换为实际绑定网卡或来源的区域。还应留意运行时规则与永久配置是否一致。

预期结果:找到与实际端口、来源地址和网络接口匹配的放行或拒绝规则。修复时优先调整必要规则,不要把清空全部规则或长期关闭防火墙当成默认解决办法。

第五步:排查密码和密钥认证失败

出现Permission denied时,重点应转向认证。反复测试Ping或升级带宽,通常不能解决用户名错误、密钥不匹配或登录策略限制。

用户名与认证方式是否匹配?

先确认系统要求使用哪个账号,以及是否允许密码登录。仅允许密钥登录的实例,输入正确的账号密码也不一定能通过SSH认证。

如果需要指定密钥,在Windows PowerShell中可使用:

ssh -i "$env:USERPROFILE\.ssh\id_ed25519" -o IdentitiesOnly=yes -p $sshPort "$sshUser@$serverIp"

请将路径替换为实际私钥文件。-i指定密钥;IdentitiesOnly=yes可用于限制客户端使用明确配置的身份,帮助排查代理中存在大量密钥时的认证问题。

服务器上是否安装了对应公钥?

通过控制台检查目标账号的公钥配置、文件归属和权限。常见位置是该账号家目录中的.ssh/authorized_keys,但也可能由AuthorizedKeysFile或其他认证机制指定。

SSH密钥认证配置界面截图,显示密码登录开关、公钥配置项
SSH认证相关配置:确认是否允许密码登录、公钥认证是否开启、目标用户的authorized_keys中是否包含对应公钥,注意.ssh目录权限应为700,公钥文件权限应为600。

在常见OpenSSH配置下,.ssh目录权限700、公钥文件权限600是常用设置,还要确认文件所有者正确,并结合服务器日志判断。不要把本机私钥上传为服务器公钥文件。

主机密钥变化时,不要直接跳过校验

重装系统可能导致主机密钥变化,但连接到了错误服务器或出现异常中间环节也可能触发同类告警。应先通过可信控制台或服务商渠道核实新的主机密钥指纹,再更新本机已知主机记录。

恢复连接后如何验证,避免再次失联?

保留当前控制台或已连接会话,另外打开一个终端,使用准备长期采用的IP、端口、用户名和认证方式重新登录。

  1. 确认新会话确实能够建立,而不是只有旧会话仍在运行。
  2. 确认需要的管理权限正常,核对服务状态与近期日志。
  3. 检查防火墙修改是否需要持久化,核对SSH服务的启动或socket激活配置。
  4. 记录故障时间、完整报错、定位依据和实际修改,便于后续追踪。
SSH连接恢复验证检查清单
恢复连接后的6项验证检查清单,每一项都确认通过后,再关闭当前控制台会话,避免修改配置后再次失联。

使用LuckVM VPS时,可以先在实例控制台核对运行状态、IP和连接信息;控制台功能、网络规则与恢复方式以当前产品界面和官方说明为准。提交工单时,附上故障时间、来源网络、目标端口和已脱敏的报错,比只描述“服务器连不上”更容易定位。

如果SSH已经能够稳定登录,但网站仍然加载缓慢,可以继续阅读VPS带宽多少够用:页面传输量与带宽计算,区分连接故障与业务传输瓶颈。

常见问题

Ping不通,就说明VPS宕机了吗?

不一定。Ping使用的ICMP流量可能被限制,而SSH使用TCP。应结合实例状态、实际端口测试和控制台检查判断。

SSH连接被拒绝,是密码错误吗?

通常不是。连接被拒绝一般发生在认证之前,应先检查端口、监听服务和主动拒绝规则。密码错误通常表现为认证失败。

换一个SSH端口就能解决连接超时吗?

只有原端口相关限制确实是原因时,调整端口才可能有帮助。改端口还需要同步处理服务监听、云端规则、系统防火墙和客户端设置,不能作为通用修复方法。

可以直接重装VPS解决吗?

重装可能覆盖数据,也不一定解决来源IP限制或外部网络问题。应先通过控制台定位原因;确需重装时,先确认备份和恢复方案。

连接成功后过一段时间掉线怎么办?

这与一开始就连不上不同,应检查网络中断、NAT空闲回收、服务端会话策略和系统负载。客户端保活设置可能帮助处理部分空闲连接问题,但不能修复实际断网或服务异常。

参考资料:

 

相关服务

查看相关 LuckVM 产品的配置、线路与资源,实际库存与价格以订购页为准。 域名注册_国际域名购买_.com/.net/.org域名申请