CentOS 7 防火墙配置指南,解决无法连接及设置 IP 访问权限

admin
本文详细介绍了 CentOS 7 系统下防火墙的配置步骤,通过开放指定端口解决了服务无法连接的常见问题;详细讲解了如何设置 IP 访问权限,包括允许特定 IP 访问或拒绝特定 IP,帮助用户灵活管理网络流量,从而有效提升系统的安全性与稳定性。

在使用 CentOS 7 系统时,很多管理员会遇到“连接不上”的问题,这通常是因为系统默认开启了防火墙(Firewalld),如果你刚配置好 IP 地址,却发现无法通过 SSH、Web 服务或其他端口进行连接,那么问题很可能出在防火墙的设置上。

本文将详细介绍如何排查连接问题,以及如何正确设置防火墙以允许特定 IP 访问。

检查防火墙服务状态

我们需要确认防火墙服务是否正在运行,如果服务未启动,你需要先启动它。

CentOS 7 防火墙配置指南,解决无法连接及设置 IP 访问权限

  1. 查看防火墙状态:
    systemctl status firewalld
    • 如果显示 active (running),说明防火墙正在工作。
    • 如果显示 inactive (dead),请运行 systemctl start firewalld 启动它。

如何设置允许特定 IP 访问

默认情况下,CentOS 7 的防火墙是拒绝所有外部连接的,如果你只想允许特定的 IP 地址(例如你本机的固定 IP)访问服务器,而不是允许所有人访问,应该使用“富规则”。

命令格式:

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="允许的IP地址" accept'

示例: 假设你希望只允许 168.1.100 这个 IP 访问服务器的 22 端口(SSH):

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" accept'

开放端口

除了限制 IP,你通常还需要开放具体的端口(如 80 用于 HTTP,22 用于 SSH)。

开放单个端口:

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

开放端口范围:

firewall-cmd --permanent --add-port=6000-6010/tcp

重载防火墙并验证

配置修改(--permanent)是永久生效的,但不会立即生效,你需要重载防火墙。

  1. 重载配置:

    firewall-cmd --reload
  2. 查看当前生效的规则:

    firewall-cmd --list-all

    在输出中检查 services(服务)和 ports(端口)以及 rich rules(富规则)是否已添加。

常见问题排查

如果你按照上述步骤操作后仍然连接不上,请检查以下几点:

  1. 确认 IP 配置正确: 使用 ip addrifconfig 确认网卡配置正确,且 IP 地址没有冲突。
  2. 检查网络模式: 确保虚拟机(如果是虚拟化环境)的网络模式设置为“NAT”或“桥接”,并且宿主机网络正常。
  3. 检查 SELinux: 有时 SELinux 会阻止网络连接,你可以暂时关闭它进行测试(不推荐生产环境长期关闭):
    setenforce 0

    如果关闭 SELinux 后能连接,说明是 SELinux 策略问题,需要调整策略而非直接关闭。

CentOS 7 连接不上通常是因为防火墙拦截了流量,通过 firewall-cmd 命令,你可以精确地设置允许特定 IP 访问,或者开放必要的端口,修改配置后务必执行 --reload 命令才能使更改生效。

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

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