查看端口
1. 查看所有开放端口
1
| sudo firewall-cmd --list-ports
|
输出示例:
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. 永久开放端口
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 协议,改为:
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
|