CentOS 7开启防火墙后SSH(22端口)无法连接?解决方法

admin
CentOS 7开启防火墙后SSH(22端口)无法连接,通常是因为防火墙默认拦截了入站流量,解决方法是使用firewall-cmd命令永久开放SSH端口,即执行firewall-cmd --zone=public --add-port=22/tcp --permanent,随后重新加载防火墙配置(firewall-cmd --reload),从而恢复远程连接。

在使用 CentOS 7 系统时,默认情况下系统会使用 firewalld 作为防火墙管理工具,为了服务器安全,管理员会手动开启防火墙,或者在服务器重启后防火墙自动启动,如果操作不当,可能会导致 SSH 远程连接断开,或者新连接无法建立。

要在 CentOS 7 中确保防火墙开启后 22端口通,从而保持 SSH 连接畅通,请按照以下步骤进行配置:

检查防火墙状态

我们需要确认防火墙服务是否正在运行。

CentOS 7开启防火墙后SSH(22端口)无法连接?解决方法

输入以下命令查看状态:

systemctl status firewalld
  • 如果显示 active (running),说明防火墙正在运行。
  • 如果显示 inactive (dead),请先启动防火墙:
    systemctl start firewalld
    systemctl enable firewalld  # 设置开机自启

开放 22 端口

CentOS 7 默认情况下通常会开放 22 端口,但如果你之前重置了防火墙规则,或者为了安全起见进行了严格的策略配置,需要手动添加。

使用 firewall-cmd 命令来添加规则,关键参数说明:

  • --zone=public:表示选择 public 区域(公共区域)。
  • --add-port=22/tcp:表示添加 22 端口,协议为 TCP。
  • --permanent:表示永久生效(重启后依然有效)。注意:如果不加这个参数,重启后规则会失效。

执行以下命令:

firewall-cmd --zone=public --add-port=22/tcp --permanent

重载防火墙配置

添加完规则后,必须执行重载命令,让新规则立即生效,而无需重启服务器。

firewall-cmd --reload

验证端口是否开放

为了确保配置成功,可以使用 --list-ports 命令查看当前开放的端口列表。

firewall-cmd --list-ports

如果列表中包含 22/tcp,说明配置成功。

重启 SSH 服务(可选)

虽然开放防火墙端口通常就能解决问题,但为了确保新的 SSH 会话能正常建立,建议重启一下 SSH 服务:

systemctl restart sshd

在 CentOS 7 中,只要确保防火墙处于运行状态,并且通过 firewall-cmd --permanent --add-port=22/tcp 成功添加了 22 端口,然后执行 firewall-cmd --reload,就能保证 22端口通,从而实现 SSH 的正常远程连接。

文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码