Ubuntu 24.04 SSH 多端口监听与 ssh.socket 配置详解

在校园网或企业网络环境下,服务器的默认 SSH 端口(通常是 22)可能被限制或封锁,这时候就需要配置 SSH 监听多个端口以确保远程访问可用。Ubuntu 24.04 对 SSH 服务的启动和端口监听方式与旧版本有所不同,因此多端口配置需要注意一些细节。

本文结合实际校园网端口封锁的场景,详细讲解 Ubuntu 24.04 的 SSH 多端口配置,并对比 Ubuntu 22.04 的差异。


1. 校园网端口封锁示例

在校园网中,可能只有少数端口能够通过防火墙,例如:

  • 可用端口:23、24、25

  • 被封锁端口:22、21、80、443

如果服务器默认只监听 22 端口,则在校园网环境下远程 SSH 连接会失败。解决方法是让 SSH 监听允许的端口。

复制代码
# 检查端口占用情况
sudo ss -tulnp | grep -E '22|23|24|25'

输出示例:

复制代码
端口 21 被占用 → tcp *:21 users:(("vsftpd",pid=962,fd=3))
端口 22 被占用 → tcp *:22 users:(("sshd",pid=2170943,fd=3))
端口 23 空闲
端口 24 空闲
端口 25 空闲

可以看到,23-25 端口空闲,可以配置 SSH 监听。


2. Ubuntu 24.04 默认启用

ssh.socket

在 Ubuntu 24.04 中,SSH 服务默认使用 socket activation

复制代码
systemctl status ssh.socket

输出示例:

复制代码
● ssh.socket - OpenBSD Secure Shell server socket
     Loaded: loaded (/usr/lib/systemd/system/ssh.socket; enabled; preset: enabled)
     Active: active (running)
     Listen: [::]:22 (Stream)

说明 ssh.socket 已启用并监听 22 端口,当有连接请求时会启动 sshd.service。

与传统 sshd.service 自行绑定端口不同,这种机制可以节省系统资源,但也导致直接修改 /etc/ssh/sshd_config 中的 Port 配置后,重启 sshd.service 并不会生效。

在 Ubuntu 22.04 上,默认没有启用 ssh.socket,sshd.service 启动时会直接绑定 22 端口,因此修改 Port 配置后,直接重启 sshd.service 就可以生效。


3. 配置多端口监听(23-25端口)

3.1 编辑 SSH 配置文件

复制代码
sudo nano /etc/ssh/sshd_config

添加或修改:

复制代码
Port 22
Port 23
Port 24
Port 25

3.2 检查 Privilege Separation 目录

复制代码
sudo sshd -t

如果出现:

复制代码
Missing privilege separation directory: /run/sshd

解决方法:

复制代码
sudo mkdir -p /run/sshd && sudo chmod 755 /run/sshd

3.3 重新加载 systemd 并重启 socket

复制代码
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket

3.4 验证端口监听

复制代码
sudo ss -tulnp | grep ssh

输出应显示:

复制代码
tcp   LISTEN   0   128   0.0.0.0:22
tcp   LISTEN   0   128   0.0.0.0:23
tcp   LISTEN   0   128   0.0.0.0:24
tcp   LISTEN   0   128   0.0.0.0:25

此时,无论校园网封锁了 22 端口,仍可通过 23-25 端口进行 SSH 连接。


4. 注意事项

4.1 端口冲突

确保新增端口未被其他服务占用。

4.2 防火墙设置

使用 ufw 或 iptables 放行新端口:

复制代码
sudo ufw allow 23/tcp
sudo ufw allow 24/tcp
sudo ufw allow 25/tcp

4.3 远程操作风险

如果你在远程连接服务器,建议先通过后台验证配置:

复制代码
sudo sshd -t

避免因为配置错误导致 SSH 中断。


5. 总结

  • Ubuntu 24.04 默认启用 ssh.socket,22 端口由 socket 激活,直接修改 sshd.service 不会生效。

  • 在校园网端口受限的情况下,可以通过配置多个端口(如 23-25)确保 SSH 访问。

  • 需要注意 /run/sshd 目录存在、端口冲突和防火墙规则。

  • Ubuntu 22.04 默认不启用 ssh.socket,sshd.service 可直接绑定端口。

通过这些步骤,你可以安全、灵活地在 Ubuntu 24.04 上配置 SSH 多端口监听,即使在校园网或严格防火墙环境下,也能保持远程访问可用。

相关推荐
消失的旧时光-19439 分钟前
Linux 入门核心命令清单(工程版)
linux·运维·服务器
艾莉丝努力练剑16 分钟前
【Linux:文件】Ext系列文件系统(初阶)
大数据·linux·运维·服务器·c++·人工智能·算法
小天源19 分钟前
Cacti在Debian/Ubuntu中安装及其使用
运维·ubuntu·debian·cacti
Trouvaille ~42 分钟前
【Linux】TCP Socket编程实战(一):API详解与单连接Echo Server
linux·运维·服务器·网络·c++·tcp/ip·socket
旖旎夜光1 小时前
Linux(13)(中)
linux·网络
威迪斯特2 小时前
CentOS图形化操作界面:理论解析与实践指南
linux·运维·centos·组件·图形化·桌面·xserver
一方热衷.2 小时前
在线安装对应版本NVIDIA驱动
linux·运维·服务器
独自归家的兔2 小时前
ubuntu系统安装dbswitch教程 - 备份本地数据到远程服务器
linux·运维·ubuntu
ONE_SIX_MIX2 小时前
ubuntu 24.04 用rdp连接,桌面黑屏问题,解决
linux·运维·ubuntu
龙飞052 小时前
Systemd -systemctl - journalctl 速查表:服务管理 + 日志排障
linux·运维·前端·chrome·systemctl·journalctl