在使用 Ubuntu 系统时,若发现 22 端口(SSH 远程连接默认端口)无法访问,通常并非系统“故意关闭”,而是源于三个常见原因:未安装 SSH 服务端本地防火墙未放行,或云服务商安全组未允许。下面按顺序逐一解决,即可顺利开启 22 端口。

博主博客

第一步:安装与启动 SSH 服务

Ubuntu 桌面版或最小化安装版默认不带 SSH 服务端,需要手动安装。

  1. 更新软件包列表(推荐)
sudo apt update
  1. 安装 OpenSSH 服务端
sudo apt install openssh-server -y
  1. 启动 SSH 服务
sudo systemctl start ssh
  1. 设置开机自动启动(确保重启后依然可用)
sudo systemctl enable ssh
  1. 验证服务运行状态
sudo systemctl status ssh

若看到 active (running) 字样,则服务已正常运行。

第二步:配置防火墙(UFW)允许 22 端口

Ubuntu 自带的 ufw 防火墙如果启用,会默认阻止所有外部入站连接,需要手动放行。

  1. 放行 22 端口
sudo ufw allow 22

(也可以写成 sudo ufw allow ssh,效果相同)

  1. 如果防火墙尚未启用,开启它(已启用则跳过)
sudo ufw enable
  1. 重载防火墙规则,使更改立即生效
sudo ufw reload
  1. 查看当前放行规则,确认 22 端口已列入
sudo ufw status

输出中应包含 22/tcp ALLOW22 ALLOW 字样。

注意:若你使用的是 firewalld 或其他防火墙工具,请使用对应命令(如 firewall-cmd --add-port=22/tcp --permanent)。本文以 ufw 为例,这是 Ubuntu 默认推荐方案。

第三步:检查云服务器安全组(适用于云环境)

如果你使用的是阿里云、腾讯云、华为云、AWS、Azure 等云厂商的云服务器,即使系统内部配置完毕,云平台自身的安全组(或防火墙)仍会拦截外部流量。这一步经常被忽略,却是最关键的环节

操作步骤(各家控制台大同小异):

  1. 登录云服务器管理控制台。
  2. 找到 安全组(或 防火墙网络访问控制)配置页面。
  3. 选择当前实例所绑定的安全组,点击 配置规则(或 添加规则)。
  4. 添加入方向规则:
    • 协议:TCP
    • 端口:22
    • 授权对象/源 IP:根据需要填写(若允许所有 IP 访问,可填 0.0.0.0/0,生产环境建议限制为特定 IP 段以提升安全性)。
  5. 保存规则,通常无需重启实例即可生效。

验证与测试

完成以上三步后,可在本地终端使用以下命令测试连接(将 your_server_ip 替换为实际公网 IP):

ssh username@your_server_ip -p 22

若提示输入密码或密钥验证,即表示 22 端口已成功开启。

常见问题排查

  • 服务启动失败:检查 /var/log/auth.log 或使用 journalctl -u ssh 查看错误日志。
  • 防火墙规则冲突:执行 sudo iptables -L -n 检查是否有其他规则拒绝 22 端口。
  • 云平台仍无法连接:确认安全组规则已应用,且实例已分配公网 IP;部分平台还需检查“网络 ACL”或“操作系统防火墙”之外的“主机防火墙”设置。

通过以上系统化的三步配置,绝大多数 Ubuntu 系统的 22 端口问题都能得到解决。记得每次修改配置后,通过 status 命令和外部测试来验证效果,确保远程连接稳定可靠。