需将SSH端口改为1024–65535内未占用非常见端口(如22222),同时保留Port 22作为备用;操作前必须备份sshd_config,修改后放行新端口、处理SELinux限制,重启服务并验证新端口连接成功。

为防止自动化扫描工具盯上默认的22端口,降低暴力破解风险,需将SSH服务监听端口从22改为1024–65535范围内未被占用的非常见端口,操作中必须保留22端口作为备用通道,避免失联。
备份并编辑sshd_config配置文件
用root权限执行:cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak,这一步不可跳过——一旦改错导致无法连接,【没有备份就等于失去所有退路】。
运行 nano /etc/ssh/sshd_config 打开配置文件,向下翻找包含 #Port 22 的行(通常在文件靠前位置),删掉开头的 # 取消注释,再在其下方新增一行:Port 22222(你选的端口号,如2222、22022、22222均可,避开已占用端口)。
注意:不要删除或注释掉原有的 Port 22 行。保留双端口共存状态是安全前提。
放行新端口并处理SELinux限制
方法一(firewalld系统,如CentOS/RHEL/Rocky):
执行 firewall-cmd --permanent --add-port=22222/tcp → firewall-cmd --reload。
方法二(ufw系统,如Ubuntu):
执行 ufw allow 22222/tcp → ufw reload。
若系统启用SELinux(运行 sestatus 确认为enforcing或permissive),必须添加端口上下文,否则sshd启动时会因权限拒绝而绑定失败,现象是 systemctl restart sshd 成功但 ss -tulnp | grep :22222 查不到监听,journal日志报“bind: Permission denied”。此时先确认是否装有 policycoreutils-python-utils 包,未安装则运行 yum install -y policycoreutils-python-utils(RHEL系)或 apt install policycoreutils-python-utils(Debian/Ubuntu),再执行:semanage port -a -t ssh_port_t -p tcp 22222。
重启服务并验证新端口可用性
第一步:执行 systemctl restart sshd,让配置生效。
第二步:检查监听状态,运行 ss -tulnp | grep ':22222',输出中应含 sshd 进程和该端口;再运行 systemctl status sshd 确认无failed提示。
第三步:新开一个终端窗口,用新端口测试连接:ssh username@your_server_ip -p 22222。只有看到登录成功提示,才说明整套流程走通。
第四步:确认新连接稳定后,再回到原会话中,可考虑注释掉配置文件里的 Port 22 行并再次 systemctl restart sshd,但此操作不在本次流程内。











