# 在CentOS中添加防火墙允许端口的完整教程
在CentOS系统中,防火墙是保障服务器网络安全的重要组件。CentOS 7及以上版本默认使用`firewalld`服务管理防火墙规则,本文将详细介绍如何通过`firewalld`添加允许的端口,包括临时配置、永久配置及验证方法。
## 一、前提:确认firewalld服务状态
在操作端口规则前,需先确认`firewalld`服务是否正常运行(CentOS 7+默认安装,无需额外安装)。
### 1. 查看firewalld状态
执行以下命令查看服务当前状态:
```bash
systemctl status firewalld
- 运行中:输出显示
active (running)
,可直接进行后续操作。 - 未运行:输出显示
inactive (dead)
,需先启动服务。
2. 启动并设置firewalld开机自启
若服务未运行,执行以下命令启动并配置开机自启(避免重启后服务失效):
# 启动firewalld服务
systemctl start firewalld
# 设置开机自启(重启服务器后仍生效)
systemctl enable firewalld
二、添加防火墙允许的端口
根据需求不同,端口开放分为临时开放(重启firewalld或服务器后失效)和永久开放(重启后仍生效),以下分别介绍。
1. 临时开放端口(快速测试用)
临时开放适用于短期测试场景(如临时调试服务),无需重新加载规则即可生效,但重启后会丢失配置。
语法:
firewall-cmd --add-port=[端口号]/[协议类型]
- 端口号:需开放的具体端口(如80、443)。
- 协议类型:常用
tcp
(如HTTP、HTTPS服务)或udp
(如DNS服务),需与服务使用的协议一致。
示例:
- 临时开放TCP 80端口(HTTP服务):
firewall-cmd --add-port=80/tcp
- 临时开放UDP 53端口(DNS服务):
firewall-cmd --add-port=53/udp
2. 永久开放端口(生产环境用)
生产环境中需使用永久开放,配置后需重新加载规则生效,且重启服务或服务器后不会丢失。
语法:
在临时开放命令基础上添加 --permanent
参数:
firewall-cmd --permanent --add-port=[端口号]/[协议类型]
示例:
- 永久开放TCP 443端口(HTTPS服务):
firewall-cmd --permanent --add-port=443/tcp
- 永久开放UDP 161端口(SNMP服务):
firewall-cmd --permanent --add-port=161/udp
关键步骤:重新加载规则
永久配置后,需执行以下命令重新加载firewalld
规则,让配置生效:
firewall-cmd --reload
3. 开放端口范围(批量需求用)
若需开放连续的端口范围(如1000-2000),可直接指定范围,无需逐个添加。
语法:
# 临时开放端口范围
firewall-cmd --add-port=[起始端口]-[结束端口]/[协议类型]
# 永久开放端口范围
firewall-cmd --permanent --add-port=[起始端口]-[结束端口]/[协议类型]
示例:
永久开放TCP 1000-2000端口范围:
# 1. 永久配置
firewall-cmd --permanent --add-port=1000-2000/tcp
# 2. 重新加载生效
firewall-cmd --reload
三、验证端口是否已成功开放
配置完成后,需验证端口是否已加入防火墙允许列表,避免配置失误导致服务无法访问。
1. 查看当前开放的所有端口
执行以下命令查看所有已开放的端口(包括临时和永久配置,需在永久配置加载后查看):
firewall-cmd --list-ports
输出示例:
80/tcp 443/tcp 1000-2000/tcp
若目标端口在输出列表中,说明配置成功。
2. 查看永久配置的端口(可选)
若需单独确认永久配置的端口(不包含临时配置),执行:
firewall-cmd --permanent --list-ports
四、移除已开放的端口
若需关闭不再使用的端口,可参考以下命令移除规则。
1. 临时移除端口
firewall-cmd --remove-port=[端口号]/[协议类型]
示例:
临时移除TCP 80端口:
firewall-cmd --remove-port=80/tcp
2. 永久移除端口
# 1. 永久移除配置
firewall-cmd --permanent --remove-port=[端口号]/[协议类型]
# 2. 重新加载生效
firewall-cmd --reload
示例:
永久移除TCP 443端口:
firewall-cmd --permanent --remove-port=443/tcp
firewall-cmd --reload
五、注意事项
- 协议一致性:开放端口时需确认服务使用的协议(TCP/UDP),如HTTP用TCP、DNS用UDP,协议错误会导致服务无法访问。
- 生产环境优先永久配置:临时配置仅用于测试,生产环境必须使用
--permanent
参数并重新加载规则。 - 重启firewalld的影响:重启
firewalld
服务(systemctl restart firewalld
)会使临时配置失效,永久配置不受影响。 - 旧版CentOS差异:CentOS 6及以下版本使用
iptables
而非firewalld
,若需操作旧版系统,需参考iptables
相关命令(如iptables -A INPUT -p tcp --dport 80 -j ACCEPT
)。
通过以上步骤,可在CentOS系统中安全、高效地管理防火墙允许的端口,保障服务器网络服务的正常访问与安全。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦