Ubuntu 24 修改 SSH 端口记录(基于 systemd socket 激活)

Ubuntu 24 修改 SSH 端口记录(基于 systemd socket 激活)

4 周前 11 0 0℃

Ubuntu 24 修改 SSH 端口记录(基于 systemd socket 激活)

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=yes

2.2 重新加载 systemd 配置

让 systemd 重新读取 unit 文件(必须)

sudo systemctl daemon-reload

2.3 重启 SSH socket

sudo systemctl restart ssh.socket

2.4 验证端口是否生效

systemctl status ssh.socket
root@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 可以按需启动、异常自愈和统一的生命周期管理能力。

已复制到剪贴板