修改SSH端口需五步:一、编辑/etc/ssh/sshd_config将Port 22改为新端口(如2222);二、防火墙放行新端口(firewalld或ufw);三、SELinux系统需用semanage添加ssh_port_t类型;四、重启sshd并验证监听与连接;五、确认无误后注释或删除Port 22行并重启服务。
如果您希望提升Linux服务器SSH服务的安全性,修改默认的22端口是常见且有效的基础防护措施。以下是修改SSH端口的具体操作步骤:
SSH服务的端口设置由sshd_config文件控制,需通过文本编辑器修改该文件中的Port指令,以指定新的监听端口号。
1、使用root权限打开SSH配置文件:sudo nano /etc/ssh/sshd_config
2、在文件中查找包含Port 22的行(可能被注释或未注释)
3、将该行修改为所需端口号,例如改为Port 2222;若原行被注释(以#开头),需先删除#号
4、保存并退出编辑器(nano中按Ctrl+O回车保存,Ctrl+X退出)

系统防火墙(如firewalld或ufw)默认仅允许22端口通信,更换端口后必须显式添加新端口规则,否则连接将被拒绝。
1、若使用firewalld:执行sudo firewall-cmd --permanent --add-port=2222/tcp
2、重新加载firewalld配置:sudo firewall-cmd --reload
3、若使用ufw:执行sudo ufw allow 2222/tcp
4、确认规则已生效:sudo ufw status verbose
在启用SELinux的系统(如CentOS/RHEL)中,新端口需被标记为ssh_port_t类型,否则sshd进程无法绑定该端口。
1、检查当前SELinux状态:sestatus
2、若SELinux处于enforcing模式,执行:sudo semanage port -a -t ssh_port_t -p tcp 2222
3、验证端口类型是否添加成功:sudo semanage port -l | grep ssh
配置更新后必须重启sshd服务使新端口生效,并确认服务确实在新端口上监听,避免因配置错误导致失连。
1、重启SSH服务:sudo systemctl restart sshd
2、检查监听端口:sudo ss -tlnp | grep :2222
3、在另一终端尝试连接新端口:ssh -p 2222 username@server_ip
4、确认连接成功后,再考虑禁用22端口(可选)
在确认新端口稳定可用后,可移除对22端口的监听,进一步缩小攻击面。
1、再次编辑/etc/ssh/sshd_config
2、找到Port 22行,将其整行删除或在行首添加#注释
3、保存文件并重启服务:sudo systemctl restart sshd
4、检查22端口是否不再监听:sudo ss -tln | grep :22(应无输出)