➢ 问题现象:
修改完/etc/ss/sshd_config中Port端口之后,重启sshd进程无法启动。

➢ 可能原因:
配置错误,检查配置语法合法性,配置端口是否被占用。
防火墙规则是否允许2222端口规则通行。
SElinux会限制sshd绑定非默认端口。
➢ 排查步骤:
① 查看配置语法合法性
sshd -t #无输出表示配置合法
验证2222端口是否被占用[lsof -i :2222]
② 执行命令查询防火墙是否开放规则。
firewall-cmd --list-ports | grep 2222
③ SElinux会限制sshd非默认端口配置,查询SElinxu的配置策略,未添加到SElinux配置策略中,验证如下:
semanage port -l | grep ssh
grep "sshd" /var/log/audit/audit.log | grep "denied" | grep "port"

➢ 解决方案:
① 将 2222 端口添加到 SELinux 允许列表。
# 安装 semanage 工具(若未安装)
yum install -y policycoreutils-python # CentOS/RHEL 7
# yum install -y policycoreutils-python-utils # CentOS/RHEL 8/9
# 添加 2222 端口到 ssh_port_t 类型
semanage port -a -t ssh_port_t -p tcp 2222
# 验证添加结果(应显示 22, 2222)
semanage port -l | grep ssh
② 放行防火墙 2222 端口(若未放行)。
# 永久放行 2222/tcp 端口
firewall-cmd --add-port=2222/tcp --permanent
# 重载防火墙规则
firewall-cmd --reload
# 验证
firewall-cmd --list-ports | grep 2222
③ 重启 sshd 服务并验证状态。
# 重启 sshd
systemctl restart sshd
# 检查状态(应显示 active (running))
systemctl status sshd
# 验证端口监听(应显示 sshd 监听 2222 端口)
ss -tulpn | grep sshd
浙公网安备 33010602011771号