修改 SSH 监听端口

746 字
4 分钟
修改 SSH 监听端口

修改 SSH 端口能减少针对默认 22 端口的无差别扫描,但它不是访问控制手段。真正有效的基础措施仍是 SSH 密钥、禁用不必要的密码登录、及时更新系统和限制管理入口

本文以 Ubuntu/Debian 为例,使用 25565 作为示例端口。端口必须是 165535 之间未被其他服务占用的整数

不要先断开旧会话

修改配置后,应从新的终端验证新端口能够登录,再关闭原连接。否则端口写错或防火墙遗漏时,可能需要通过云厂商控制台恢复

修改配置#

先编辑 SSH 服务端配置:

Terminal window
sudoedit /etc/ssh/sshd_config

找到 Port 22或新增一行,写成:

Terminal window
# Port 端口
# 例如:
Port 25565

若文件中存在多条未注释的 Port,SSH 会同时监听多个端口。确认只保留自己需要的端口,避免误把旧端口继续暴露在公网

使用配置片段

也可以在/etc/ssh/sshd_config.d/新建 port.conf 并写入 Port 34377。先确认主配置中存在对应的 Include 行,避免以为配置已生效而实际未被读取

先校验,再重载#

重载之前先检查语法:

Terminal window
sudo sshd -t

没有输出代表语法通过。接着重载服务;Ubuntu 通常使用 ssh,部分发行版服务名为 sshd

Terminal window
sudo systemctl reload ssh

reload 不会中断已有 SSH 会话。若系统不支持重载,再使用 restart,但依然应先通过 sshd -t

Ubuntu24.04修改办法:

Terminal window
sudo vim /etc/ssh/sshd_config
sudo systemctl daemon-reload
sudo systemctl restart ssh

放行防火墙与云平台规则#

系统启用 UFW 时放行新端口:

VPS
sudo ufw allow 25565/tcp
sudo ufw status numbered

云服务器还需要在安全组或防火墙规则中允许 TCP 25565 入站。如果只改了系统配置而未放行云平台规则,公网连接仍会超时

用新连接验证#

保持原有会话,在本地新开一个终端:

本地终端
ssh -p 25565 root@IP

确认登录成功后,在服务器上检查监听状态:

VPS
sudo ss -lntp | grep ':25565'

最后再删除旧端口的防火墙规则。例如 UFW 显示旧规则编号后,可按编号删除:

VPS
sudo ufw status numbered
sudo ufw delete <旧规则编号>

不要在确认新端口可用前执行删除操作。完成后,可继续配置 Telegram SSH 登录告警,记录每次成功登录

无法连接时的排查顺序#

  1. 在 VPS 控制台或原 SSH 会话中执行 sudo sshd -t,确认配置语法正确
  2. sudo ss -lntp | grep ssh 确认 SSH 是否在新端口监听
  3. 检查 UFW、iptables/nftables 以及云安全组是否都已放行该端口
  4. 从本地用 ssh -vvv -p 25565 root@ip 查看连接停在哪一步

如果旧会话已经断开且两个端口都不能访问,需要通过云厂商的 Web/VNC 控制台将配置恢复,再重载 SSH 服务

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

修改 SSH 监听端口
https://20050209.xyz/posts/change-ssh-port/
作者
Erythritol
发布于
2026-08-03
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Erythritol
Hello, I'm Erythritol.
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签
最新动态
站点统计
文章
7
分类
3
标签
21
总字数
8,380
运行时长
0
最后活动
0 天前