博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

服务器更换ssh端口启动失败

Posted on 2026-04-23 16:53  打工的外星人  阅读(85)  评论(0)    收藏  举报
➢ 问题现象:

修改完/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