修改SSH端口可避开自动化扫描,需编辑/etc/ssh/sshd_config添加高端口(如57842)、防火墙放行、重启sshd并验证连接,确认成功后再移除原Port 22。

直接改 SSH 配置文件里的 Port 行,再重启服务、放行新端口,就能有效避开大部分自动化扫描。关键不是“换得多冷门”,而是让攻击者第一眼扫不到 22 端口。
修改 sshd_config 配置文件
用 root 权限编辑主配置:
vim /etc/ssh/sshd_config
找到类似 #Port 22 的行(通常在第 17 行左右),去掉前面的 #,并在下方新增一行指定新端口,例如:
-
Port 22(保留原端口作为备用,防止连不上) -
Port 57842(推荐选 1024–65535 之间的高端口,避开常见服务如 3306、8080、9000 等)
保存退出后,先别急着删掉 Port 22 —— 确认新端口能连通后再移除。
开放防火墙对应端口
CentOS 7/8 或 RHEL 系统默认用 firewalld:
- 添加端口:firewall-cmd --zone=public --add-port=57842/tcp --permanent
- 重载规则:firewall-cmd --reload
- 验证是否生效:firewall-cmd --zone=public --query-port=57842/tcp(返回 yes 即成功)
如果是旧版 iptables,执行:iptables -I INPUT -p tcp --dport 57842 -j ACCEPT,再保存规则。
重启 SSH 服务并验证连接
运行命令重启服务:
systemctl restart sshd
新开一个终端窗口,用新端口测试连接(注意不要关闭当前会话):
ssh -p 57842 username@your_server_ip
如果登录成功,再回到原会话,把配置文件中 Port 22 这行注释或删掉,然后再次 systemctl restart sshd。
额外提醒:避免被锁死
- 操作全程不要断开当前 SSH 连接,以防配置出错无法重连
- 若使用云服务器(如阿里云、腾讯云),还需在安全组里手动放行新端口
- 可配合
netstat -tlnp | grep :57842或ss -tlnp | grep ssh确认 sshd 是否真正在监听新端口 - 端口改完后,可用
nmap -p 57842 your_server_ip检查是否对外可见


















