为了账号安全,请及时绑定邮箱和手机立即绑定

在CentOS中添加防火墙允许端口的完整教程

标签:
Linux
# 在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

五、注意事项

  1. 协议一致性:开放端口时需确认服务使用的协议(TCP/UDP),如HTTP用TCP、DNS用UDP,协议错误会导致服务无法访问。
  2. 生产环境优先永久配置:临时配置仅用于测试,生产环境必须使用--permanent参数并重新加载规则。
  3. 重启firewalld的影响:重启firewalld服务(systemctl restart firewalld)会使临时配置失效,永久配置不受影响。
  4. 旧版CentOS差异:CentOS 6及以下版本使用iptables而非firewalld,若需操作旧版系统,需参考iptables相关命令(如iptables -A INPUT -p tcp --dport 80 -j ACCEPT)。

通过以上步骤,可在CentOS系统中安全、高效地管理防火墙允许的端口,保障服务器网络服务的正常访问与安全。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
26
获赞与收藏
79

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消