在服务器运维与安全加固领域,将默认的 SSH 远程连接端口(如 22 端口)修改为非标准高位端口,是防御自动化脚本攻击、恶意扫描以及暴力破解最直接且最有效的手段,这一操作虽然基础,但能瞬间过滤掉绝大多数基于默认端口的网络噪音,显著提升系统隐蔽性与安全性,为了确保操作过程万无一失,必须遵循严谨的配置流程,涵盖端口选择、防火墙放行、SELinux 策略更新以及服务重启验证等关键环节。

以下是基于 Linux 系统(以 CentOS/Ubuntu 为例)的专业实施方案。
端口规划与预备检查
在动手修改任何配置之前,科学的规划能避免后续的服务中断,选择新端口时,需遵循以下原则:
- 避开知名端口范围:建议选择 1024 至 65535 之间的端口,切记不要选择已被系统服务占用或常见的恶意软件端口(如 3389、1433 等)。
- 确认端口未被占用:使用
netstat或ss命令检查目标端口是否空闲,检查 22222 端口:ss -tlnp | grep 22222,如果无输出,则说明该端口可用。 - 备份核心配置文件:这是专业运维的基本素养,在修改 SSH 配置文件前,务必执行备份操作,以便在配置错误时快速回滚,执行命令:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak。
修改 SSH 服务配置
SSH 服务的核心配置文件通常位于 /etc/ssh/sshd_config,通过编辑该文件来实现端口变更。
- 使用文本编辑器打开文件:推荐使用
vi或vim,执行vim /etc/ssh/sshd_config。 - 定位 Port 参数:在文件中找到
#Port 22这一行,默认情况下,该行可能被注释掉(以 # 开头)。 - 修改并添加新端口:建议采取“双轨制”策略,即先保留 22 端口,同时添加新端口,这样可以防止新端口配置失败导致无法连接服务器。
- 去掉
#Port 22前面的 号,保留 22 端口。 - 在其下方新增一行
Port 22222(假设新端口为 22222)。
- 去掉
- 保存并退出:在 vi 编辑器中,按
Esc键,输入wq并回车保存更改。
配置防火墙策略
这是操作中最关键的一步,如果防火墙未放行新端口就重启 SSH 服务,管理员将立即被锁在服务器之外,必须先放行新端口,再进行后续操作。

对于使用 firewalld(CentOS 7+ 默认)的系统:
- 添加新端口到 public 区域:执行
firewall-cmd --zone=public --add-port=22222/tcp --permanent。 - 重载防火墙配置:执行
firewall-cmd --reload。 - 验证规则是否生效:执行
firewall-cmd --list-ports,确认输出中包含 22222/tcp。
对于使用 ufw(Ubuntu 默认)的系统:
- 允许新端口:执行
ufw allow 22222/tcp。 - 检查状态:执行
ufw status确认规则已添加。
更新 SELinux 安全策略(关键步骤)
如果服务器开启了 SELinux(常见于 CentOS 系统),仅仅修改配置文件和防火墙是不够的,SELinux 会限制 SSH 服务只能监听特定的端口,必须将新端口加入安全上下文。
- 查询当前 SSH 允许的端口:执行
semanage port -l | grep ssh。 - 添加新端口:执行
semanage port -a -t ssh_port_t -p tcp 22222。 - 验证添加结果:再次执行查询命令,确认 22222 已出现在列表中。
- 注意:如果系统未安装 semanage 命令,需先安装 policycoreutils-python 包。
重启服务与连接测试
完成上述配置后,即可重启 SSH 服务使配置生效。
- 重启 SSHD 服务:执行
systemctl restart sshd。 - 检查服务监听状态:执行
ss -tlnp | grep sshd,此时应看到 SSH 进程同时监听在 22 端口和 22222 端口。 - 新端口连接测试:不要断开当前的连接窗口,打开一个新的终端窗口或工具,尝试使用新端口 22222 连接服务器。
ssh root@your_server_ip -p 22222。 - 登录验证:如果能够成功通过新端口登录,说明配置无误。
移除默认端口(收尾工作)

确认新端口连接稳定后,为了彻底消除安全隐患,应移除默认的 22 端口。
- 再次编辑配置文件:
vim /etc/ssh/sshd_config。 - 注释或删除 Port 22:将
Port 22这一行注释掉(加 #)或直接删除,仅保留Port 22222。 - 重启 SSHD 服务:
systemctl restart sshd。 - 移除防火墙中的 22 端口:
- firewalld:
firewall-cmd --zone=public --remove-port=22/tcp --permanent && firewall-cmd --reload。 - ufw:
ufw delete allow 22/tcp。
- firewalld:
至此,更改远程服务器端口号的操作已全部完成,通过这一系列严谨的步骤,服务器的安全防御等级得到了实质性提升。
相关问答模块
Q1:修改 SSH 端口后,使用 SFTP 或 FTP 工具无法连接怎么办?
A: 这是因为您的文件传输工具仍在尝试连接默认的 22 端口,您需要在工具的连接设置中找到“端口(Port)”选项,将其修改为您刚才设置的新端口号(22222),请确保服务器端的防火墙和 SELinux 策略已正确配置放行该端口。
Q2:如果在修改端口配置后重启服务失败,导致无法连接服务器,该如何处理?
A: 这种情况下,通常可以通过服务提供商提供的“VNC 控制台”或“远程控制台”直接登录服务器,这种控制台通常不经过 SSH 层,而是模拟显示器和键盘直连,登录后,您可以使用备份文件恢复配置(cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config),然后重启 SSHD 服务即可恢复。
如果您在操作过程中遇到任何疑问或想分享您的安全加固经验,欢迎在评论区留言互动!
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复