Troubleshoot Linux 1 修改sshd端口重启报错
Troubleshoot: 修改sshd端口号后重启服务报错255

把端口从 22 改成了 22222。在 RHEL 10 这样的系统上,最常见的原因是 SELinux 策略 阻止了 sshd 绑定到非标准的端口(默认只允许 22)。
从journalctl -xeu sshd.service中也能看到bind to port 2222失败是因为Permission denied。
请尝试按以下步骤解决问题:
1. 检查 SSH 配置文件语法
首先,我们来确保你的配置文件 /etc/ssh/sshd_config 没有语法错误。运行:
1 | sshd -t |
- 如果这条命令没有任何输出,说明语法正确。
- 如果有错误提示,请根据提示修改
/etc/ssh/sshd_config文件中的错误。
更新 SELinux 策略
如果语法正确,那么几乎可以肯定是 SELinux 问题。你需要告诉 SELinux 允许 sshd 使用 22222 端口。
a. 使用semanage添加新的端口策略
运行以下命令,将 22222 端口的 SELinux 上下文标记为 ssh_port_t 类型:
1 | sudo semanage port -a -t ssh_port_t -p tcp 22222 |
-a是添加 (add)-t是类型 (type)-p是协议 (protocol)
3. 重新启动 sshd 服务
更新 SELinux 策略后,再次尝试启动 sshd:
1 | sudo systemctl restart sshd |
然后马上检查它的状态:
1 | sudo systemctl status sshd |
如果 Active: 行显示 active (running),那么恭喜你,问题解决了!

⚠️ 重要提醒:更新防火墙
在你确认 sshd 服务成功运行后,千万别忘了在 firewalld 防火墙上放行你的新端口 22222,否则你将无法从外部连接到这台机器:
1 | # 永久添加 22222/tcp 端口到防火墙规则 |
