解决方案:远程shell连不上Ubuntu服务器

服务器是可以通过VNC登录,排除了是服务器本身故障

检查服务是否在全网卡监听

复制代码
sudo ss -tlnp | grep sshd

确保有一行类似

复制代码
LISTEN 0      128       0.0.0.0:22       0.0.0.0:*    users:(("sshd",pid=...,fd=3))

返回无结果,表明系统里并没有任何进程在监听 22 端口,也就连不上了。通常是因为 SSH 服务还没装或没启动。

检查 SSH 服务状态

复制代码
sudo systemctl status ssh
  • 如果看到 "Unit ssh.service could not be found",说明没装;

  • 如果看到类似 inactive (dead)failed,说明装了但没跑起来。

安装(若未安装)

复制代码
sudo apt update
sudo apt install openssh-server

启动并设为开机自启

复制代码
sudo systemctl enable --now ssh

再次确认监听

复制代码
sudo ss -tlnp | grep sshd

这时应该能看到一行 0.0.0.0:22(或 :::22)在 LISTEN。

防火墙/安全组放行

本机防火墙(UFW 举例)

复制代码
sudo ufw allow 22/tcp
sudo ufw reload

验证外部能否打通 22 端口

在本地机器上,用下面任意命令测试能不能到达服务器的 22 端口:

复制代码
telnet 你的服务器IP 22
# 或者
nc -vz 你的服务器IP 22

如果报超时或拒绝,就说明防火墙/网络还没放行 IPv4 的 22 端口。

在 Windows 上默认是没有启用 telnet 客户端的,所以 PowerShell 才提示 "CommandNotFound"。

方法一

启用 Windows 自带 Telnet 客户端

1、以管理员身份打开 PowerShell 或 CMD。

2、运行:

复制代码
dism /online /Enable-Feature /FeatureName:TelnetClient

3、等待完成后,再执行:

复制代码
telnet IP地址 22
  • 若能连通,会看到光标闪烁或 SSH 欢迎信息。

说明网络、端口和 sshd 都没问题了

  • 若仍然超时/拒绝,说明网络层面(防火墙/安全组)22 端口没放行。

方法 2:

用 PowerShell 内置的 Test-NetConnection(无需额外安装)

在普通 PowerShell 窗口直接运行:

复制代码
Test-NetConnection -ComputerName 120.27.132.21 -Port 22
  • TcpTestSucceeded: True 表示端口可达。

  • TcpTestSucceeded: False 则端口在网络层被阻断,还需要回去再检查一下:

    • 本机 UFW/iptables(或 Windows 防火墙)是否已关闭或放行 IPv4 22 端口

    • 云厂商安全组/宿主机路由是否已开放入方向 22/TCP

    • NAT/端口转发设置是否正确

相关推荐
盐焗鹌鹑蛋4 分钟前
【Linux】消息队列和信号量
linux
circuitsosk15 分钟前
Python 文件读写与上下文管理器:with 语句为什么是最佳选择
java·服务器·python·文件操作·上下文管理器·contextlib
Shawn Dev17 分钟前
没有公网 IP,如何让家里的服务器通过域名访问?——Cloudflare Tunnel 实战指南
服务器·网络协议·tcp/ip
智者向内寻求力量18 分钟前
【记录】ubuntu 24.04 安装在levnoval PC上之后,蓝牙设备找不到解决方法
linux·服务器·ubuntu
迪康coolmu22 分钟前
企业IT运维闭环——工单管理与远程协助一体化实践
java·大数据·运维·网络·数据库·人工智能·安全
halo雨航28 分钟前
阿贝云免费服务器申请
运维·服务器
2301_8107301029 分钟前
K8s的Pod管理
linux·容器·kubernetes
tedcloud12334 分钟前
diagram-design 怎么安装?用 AI 自动生成更专业的架构图、流程图
linux·运维·前端·人工智能·开源·流程图
huainingning37 分钟前
Linux和Windows系統SCP命令传输文件
linux·运维·服务器
2401_862880821 小时前
Linux应用层开发 --- 多任务
linux·服务器·c语言