改ssh端口不能提升认证强度,但可降低自动化扫描和暴力破解风险;推荐使用10000–65535间五位数端口,双端口共存验证后再停用22端口,并配合iptables按ip精确放行。

改SSH端口本身不提升身份认证强度,但能降低被自动化扫描和暴力破解盯上的概率——相当于把门牌号藏起来,让攻击者先得花力气找门在哪。配合iptables精准放行,进一步缩小暴露面。
选一个靠谱的新端口
别用常见端口(如80、443、3306),也避开1–1023的特权端口(除非你明确配置了 capability 或 selinux 允许)。推荐范围:10000–65535 之间的五位数,比如 23456、51289。确认该端口没被其他服务占用:
-
检查是否被占用:运行
ss -tuln | grep ':新端口号',无输出表示空闲 - 避免冲突:不要和已启用的服务(如 web、数据库、面板)端口重复
修改sshd_config并保留22端口过渡
直接注释掉 Port 22 并只写新端口风险极高——一旦防火墙规则没生效或SELinux拦截,你就彻底失联。稳妥做法是双端口共存,验证新端口可用后再删旧的:
- 编辑配置:
sudo vi /etc/ssh/sshd_config - 找到
#Port 22,删掉#,保持Port 22 - 在它下方新增一行:
Port 23456(替换成你选的端口) - 保存退出,执行
sudo systemctl restart sshd
用iptables精确放行新端口,同时限制访问源(关键一步)
仅开放端口还不够,要控制谁可以连。iptables 可以按IP、网段甚至连接频率做限制:
-
只允许你的固定IP访问新端口:
sudo iptables -A INPUT -p tcp -s 203.123.45.67 --dport 23456 -j ACCEPT -
拒绝其他所有对该端口的请求:
sudo iptables -A INPUT -p tcp --dport 23456 -j DROP -
保留22端口对所有IP开放(仅用于应急),或同样加IP限制:
sudo iptables -A INPUT -p tcp -s 203.123.45.67 --dport 22 -j ACCEPT -
保存规则(CentOS 6/7):
sudo service iptables save或sudo /etc/rc.d/init.d/iptables save
注意:如果用的是 firewalld(CentOS 7+ 默认),请改用 firewall-cmd 命令,并确保 zone 设置正确;iptables 和 firewalld 不要混用。
验证+清理旧入口
新端口通了再动手,别跳步:
- 换终端,用新端口连接:
ssh -p 23456 user@your-server-ip - 连上后,再进一次配置文件,把
Port 22行注释掉(前面加#),重启 sshd - 再次验证新端口仍可用,最后删除 iptables 中针对 22 端口的放行规则(如有)
- 可选:用
fail2ban配合新端口,对多次失败登录自动封IP
改端口不是万能钥匙,但它是最简单有效的第一道“隐身”屏障——配合IP白名单式iptables规则,能让绝大多数脚本攻击直接失效。











