Ubuntu 24 默认启用 systemd socket 激活机制,SSH 监听端口不再由 sshd_con…
一、背景说明
Ubuntu 24(24.04)开始,SSH 默认启用了 systemd socket 激活。
因此:
- 直接修改
/etc/ssh/sshd_config中的Port 22 - 不会生效
SSH 实际监听端口由 ssh.socket 决定。
二、准确修改方式
将 SSH 端口从 22 改为 22678
2.1 修改 ssh.socket 监听端口
定义 systemd socket 模式下 SSH 实际监听的端口
nano /lib/systemd/system/ssh.socket
[Socket]
ListenStream=0.0.0.0:22678
ListenStream=[::]:22678
BindIPv6Only=ipv6-only
Accept=no
FreeBind=yes2.2 重新加载 systemd 配置
让 systemd 重新读取 unit 文件(必须)
sudo systemctl daemon-reload2.3 重启 SSH socket
sudo systemctl restart ssh.socket2.4 验证端口是否生效
systemctl status ssh.socketroot@ubuntu24:~# systemctl status ssh.socket
● ssh.socket - OpenBSD Secure Shell server socket
Loaded: loaded (/usr/lib/systemd/system/ssh.socket; <strong>enable</strong>
d; preset: <strong>enabled</strong>)
Active: <strong>active (running)</strong> since Sun 2026-01-11 12:50:38 CST; 22min ago
Triggers: ● ssh.service
Listen: 0.0.0.0:22678 (Stream)
[::]:22678 (Stream)
Tasks: 0 (limit: 2265)
Memory: 8.0K (peak: 260.0K)
CPU: 839us
CGroup: /system.slice/ssh.socket
Jan 11 12:50:38 ubuntu24 systemd[1]: Listening on ssh.socket - OpenBSD Secure Shell server socket.
root@ubuntu24:~#三、说明
Ubuntu 24 使用 ssh.socket 控制 SSH 端口
/etc/ssh/sshd_config 中的 Port 在默认模式下 可不修改
若未关闭 socket 激活,只改 sshd_config 不会生效
systemd socket 激活通过端口监听与服务进程解绑, SSH 可以按需启动、异常自愈和统一的生命周期管理能力。