我目前在更改 Ubuntu 服务器上的 SSH 端口时遇到了问题。我尝试了多种故障排除步骤,但仍然无法让 SSH 监听所需的端口。我正在向社区寻求建议和帮助,以帮助我诊断和解决此问题。
问题:
出于安全原因,我最初想将默认 SSH 端口从 22 更改为 2222。我更新了 SSH 配置文件 (/etc/ssh/sshd_config),并将 Port 指令设置为 2222。进行更改并重新启动 SSH 服务后,该服务仍然监听端口 22,而不是配置的端口 2222。已采取的故障排除步骤:
- 更新的配置:我已确保 SSH 配置文件包含正确的端口指令:端口 2222。
- 重新启动 SSH:我已使用以下命令多次重新启动 SSH 服务:
sudo systemctl restart ssh
。 - 检查监听端口:我已使用该命令
sudo ss -tuln | grep ssh
检查 SSH 是否正在监听所需端口。但是,没有输出。 - 已验证的语法:我已使用确认了 SSH 配置的语法
sudo sshd -t
,并且没有报告错误。 - 防火墙规则:我添加了一条防火墙规则,以允许使用 UFW 在端口 2222 上进行传入连接:
sudo ufw allow 2222/tcp
。 - 路由器配置:我已更新路由器的端口转发设置,以将端口 2222 上的连接转发到我的服务器的内部 IP 地址。
- 系统重启:我已重启系统以确保更改生效。观察和日志:
- SSH 服务状态(
sudo systemctl status ssh
)表示服务处于活动状态并正在运行。 - 日志中显示该服务已停止并启动多次,但它始终在端口 22 上监听。
- 系统日志(
/var/log/auth.log
或/var/log/secure
)未显示任何与 SSH 服务相关的错误。 - SSH 服务在日志中收到信号 15 (SIGTERM),但我不确定它为什么不断重启。
下一步:
我正在向社区寻求建议,以解决此问题。任何见解、建议或指导都将不胜感激。系统信息:
- Ubuntu 版本:24
- 路由器型号:mi 4a
提前感谢您的帮助!
答案1
您可能需要更新ListenStream
配置/etc/systemd/system/sockets.target.wants/ssh.socket
。
将其更改为:
[Socket]
ListenStream=22
Accept=no
到:
[Socket]
ListenStream=2222
Accept=no
不过,我建议使用不同且更高的端口。
更改后,您将需要重新加载 systemctl 守护程序并重新启动 ssh。
sudo systemctl daemon-reload
sudo systemctl restart ssh