CentOS防火墙

查看端口

1. 查看所有开放端口

1
sudo firewall-cmd --list-ports

输出示例:

1
80/tcp 443/tcp 8080/tcp

2. 查看当前区域的完整规则(推荐)

1
sudo firewall-cmd --list-all

输出示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: ssh http https
ports: 8080/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

这里可以看到服务(如 http/https)和具体端口(如 8080/tcp)都显示了。


3. 查看所有区域的配置(可选)

1
sudo firewall-cmd --list-all-zones

这个命令会列出所有区域的详细设置,便于确认不是在错误区域配置的端口。


小贴士:firewalld vs iptables

  • firewalld 是 CentOS 7/8 默认的防火墙管理器。
  • 如果你使用的是 iptables,则可以用以下命令查看端口:
1
sudo iptables -L -n

如你需要进一步查看是否是某个服务监听了端口,可以使用:

1
sudo ss -tuln

开放端口

🔓 一、开放指定端口(临时或永久)

1. 永久开放端口

1
sudo firewall-cmd --permanent --add-port=8080/tcp

2. 重新加载防火墙使其生效

1
sudo firewall-cmd --reload

3. 验证端口是否成功添加

1
sudo firewall-cmd --list-ports

💡 二、一次性(临时)开放端口

如果你只想临时开放端口(系统重启后会失效):

1
sudo firewall-cmd --add-port=8080/tcp

📌 三、同时开放多个端口

你可以使用逗号分隔,也可以分别执行:

1
2
sudo firewall-cmd --permanent --add-port=8000-8010/tcp
sudo firewall-cmd --reload

🧯 四、关闭/移除端口(可选)

1
2
sudo firewall-cmd --permanent --remove-port=8080/tcp
sudo firewall-cmd --reload

如果你需要开放的是 UDP 协议,改为:

1
--add-port=XXXX/udp

CentOS 系统中常用的 firewalld 防火墙操作大全,适用于 CentOS 7 和 CentOS 8:


🔧 一、基本操作命令

功能 命令
查看防火墙状态 sudo firewall-cmd --state
启动防火墙 sudo systemctl start firewalld
停止防火墙 sudo systemctl stop firewalld
重启防火墙 sudo systemctl restart firewalld
开机启用防火墙 sudo systemctl enable firewalld
禁用开机启动 sudo systemctl disable firewalld

📋 二、查看配置信息

功能 命令
当前区域 sudo firewall-cmd --get-active-zones
查看所有区域配置 sudo firewall-cmd --list-all-zones
当前区域的全部配置 sudo firewall-cmd --list-all
当前开放端口 sudo firewall-cmd --list-ports
当前允许的服务 sudo firewall-cmd --list-services

✅ 三、服务管理

功能 命令
永久开放服务(如 HTTP) sudo firewall-cmd --permanent --add-service=http
永久关闭服务 sudo firewall-cmd --permanent --remove-service=http
临时开放服务 sudo firewall-cmd --add-service=http
应用配置更改 sudo firewall-cmd --reload

内置常见服务包括:

  • ssh
  • http
  • https
  • ftp
  • dhcp
  • samba

查看所有服务:

1
sudo firewall-cmd --get-services

🔓 四、自定义端口操作

操作 命令
永久开放端口 sudo firewall-cmd --permanent --add-port=1234/tcp
永久关闭端口 sudo firewall-cmd --permanent --remove-port=1234/tcp
临时开放端口 sudo firewall-cmd --add-port=1234/tcp

🔄 五、切换默认区域(如默认是 public)

1
sudo firewall-cmd --set-default-zone=public

💡 六、自定义丰富规则(高级)

例如,仅允许指定 IP 访问某端口

1
2
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="8080" accept'
sudo firewall-cmd --reload