解决方案:远程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/端口转发设置是否正确

相关推荐
执笔诉情殇〆6 分钟前
前后端分离(java) 和 Nginx在服务器上的完整部署方案(redis、minio)
java·服务器·redis·nginx·minio
Enti7c17 分钟前
什么是void,什么时候使用void类型?never和void的区别
linux·运维·ubuntu
宇钶宇夕1 小时前
S7-1200 系列 PLC 中 SCL 语言的 PEEK 和 POKE 指令使用详解
运维·服务器·数据库·程序人生·自动化
心 一1 小时前
Python 类型注解实战:`Optional` 与安全数据处理的艺术
服务器·python·安全
scilwb2 小时前
基于Isaac Sim场景的Coverage Path Planning 项目部署完整指南
linux
A小码2 小时前
软件开发那些基础事儿:需求、模型与生命周期
运维·服务器
Linux运维技术栈2 小时前
企业级配置:Azure 邮件与 Cloudflare 域名解析的安全验证落地详解
运维·安全·flask·azure·cloudflare
知北游天2 小时前
Linux:多线程---同步&&生产者消费者模型
java·linux·网络
kfepiza3 小时前
`nmcli con add type vlan`中的: `ifname` , `dev` ,`vlan.parent`, `id`,`vlan.id`
linux·网络协议·tcp/ip
kfepiza3 小时前
Linux的NetworkManager的`nmcli connection add` 笔记250712
linux·网络协议·tcp/ip