现象
使用 SSH 客户端连接云服务器时,出现两种截然不同的报错:连接超时(Connection timed out)和拒绝连接(Connection refused)。前者表示数据包发出去后没有任何回应,通常卡在握手阶段;后者表示服务器收到了请求,但明确回复“此端口无服务或拒绝”,响应速度很快。
原因
连接超时通常由网络层阻断引起:安全组/防火墙规则未放行 22 端口、服务器内网 IP 配置错误、服务器宕机或网络接口未启用、运营商链路故障。拒绝连接则多发生在应用层:SSH 服务(sshd)未运行、SSH 配置文件中监听端口或 IP 被修改、防火墙允许端口但服务未监听、或端口被其他进程占用。
先自查(3 分钟)
- 确认云服务器状态:登录奇异互动会员中心,检查实例是否为“运行中”。若已关机,先开机。
- 检查本地网络:在本地终端执行
ping服务器公网 IP。如果 ping 不通,优先怀疑安全组或服务器内部防火墙;如果 ping 通但 SSH 超时,重点查安全组;如果 ping 通且 SSH 拒绝,重点查 SSH 服务状态。 - 确认 SSH 端口:检查是否使用了非标准端口(如 2222)。若修改过端口,确保客户端指定了正确端口。
解决步骤
第一步:检查并配置安全组规则。登录奇异互动会员中心,进入云服务器详情页,找到“安全组”或“防火墙”设置。确保入方向规则中,协议为 TCP,端口为 22(或你自定义的 SSH 端口),授权对象为 0.0.0.0/0 或你的特定 IP。
第二步:通过 VNC 控制台进入系统内部排查。如果 SSH 不通,使用会员中心提供的“VNC 控制台”功能登录系统。这是最关键的自救手段,因为 VNC 不依赖网络端口,只要机器在运行就能操作。
第三步:检查系统内部防火墙。以 Ubuntu 22.04/24.04 和 Debian 12 为例,检查 UFW 状态并放行端口:
sudo ufw status
sudo ufw allow 22/tcp
sudo ufw reload
以 CentOS 7 / Rocky Linux 9 为例,检查 firewalld 状态并放行端口:
sudo firewall-cmd --state
sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload
第四步:检查 SSH 服务状态。在 VNC 终端中执行以下命令,确认 sshd 是否正在运行:
sudo systemctl status sshd
如果服务未运行(显示 inactive 或 dead),尝试启动它:
sudo systemctl start sshd
sudo systemctl enable sshd
第五步:检查 SSH 配置文件。如果服务启动失败或启动后仍拒绝连接,检查配置文件中的监听设置:
sudo grep -E "Port|ListenAddress" /etc/ssh/sshd_config
确保 Port 为 22(或你预期的端口),且没有错误的 ListenAddress 限制。修改配置后必须重启服务:
注意:重启 SSH 服务前,请确保当前通过 VNC 登录,否则一旦重启导致配置错误,你将无法通过 SSH 连接,且若 VNC 断开则彻底失联。
sudo systemctl restart sshd
验证
回到本地终端,重新执行 SSH 连接命令。如果之前是超时,现在应该能进入密码输入界面;如果之前是拒绝,现在也应该能正常连接。为了确认端口监听,可以在 VNC 终端中执行:
sudo ss -tlnp | grep sshd
确认 22 端口处于 LISTEN 状态。
预防
- 不要修改 SSH 默认端口,除非有明确的安全需求,且修改前务必配置好备用访问方式(如 VNC 或另一台跳板机)。
- 定期备份
/etc/ssh/sshd_config文件,以防配置误改导致服务无法启动。 - 在安全组中,尽量限制源 IP 范围,避免对全网开放,减少被扫描攻击的风险。
在奇异互动如何最快处理
如果通过上述步骤仍无法解决,请立即使用奇异互动会员中心的“工单”功能。提交时,请务必附上以下信息以加速处理:1. 云服务器实例 ID;2. 报错截图(包含完整的超时或拒绝提示);3. 你执行过的自查命令及其输出结果(特别是 systemctl status sshd 和防火墙状态);4. 你使用的本地 IP 地址。若系统完全无响应,请在工单中说明已尝试通过 VNC 登录但失败,以便工程师优先检查底层硬件或网络链路。

