centos7防火墙和指定端口

本文详细介绍CentOS防火墙的管理方法,包括查看状态、开放端口、服务控制及规则更新等关键操作,适合系统管理员和技术人员参考。

#查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

firewall-cmd --state

关闭firewall:centos7以上

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

查看防火墙开放端口

firewall-cmd --list-port

firewall-cmd --list-all

开放端口

firewall-cmd --zone=public --add-port=80/tcp --permanent

#多个端口:
firewall-cmd --zone=public --add-port=80-90/tcp --permanent

#删除
firewall-cmd --zone=public --remove-port=80/tcp --permanent

记得最后要重启

firewall-cmd --reload

命令含义:

--zone #作用域

--add-port=80/tcp  #添加端口,格式为:端口/通讯协议

--permanent   #永久生效,没有此参数重启后失效

常用命令介绍
firewall-cmd --state                           ##查看防火墙状态,是否是running
firewall-cmd --reload                          ##重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --get-zones                       ##列出支持的zone
firewall-cmd --get-services                    ##列出支持的服务,在列表中的服务是放行的
firewall-cmd --query-service ftp               ##查看ftp服务是否支持,返回yes或者no
firewall-cmd --add-service=ftp                 ##临时开放ftp服务
firewall-cmd --add-service=ftp --permanent     ##永久开放ftp服务
firewall-cmd --remove-service=ftp --permanent  ##永久移除ftp服务
firewall-cmd --add-port=80/tcp --permanent     ##永久添加80端口 
iptables -L -n                                 ##查看规则,这个命令是和iptables的相同的
man firewall-cmd                               ##查看帮助

查看版本: firewall-cmd --version
查看帮助: firewall-cmd --help
显示状态: firewall-cmd --state
查看所有打开的端口: firewall-cmd --zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
查看区域信息: firewall-cmd --get-active-zones
查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic
启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
### 如何在 CentOS 7 中使用 iptables 配置规则来开放指定端口 #### 准备工作 在开始配置之前,确保系统的 `iptables` 已经安装并启动。如果未启用,则可以通过以下命令进行操作: ```bash sudo yum install -y iptables-services sudo systemctl start iptables sudo systemctl enable iptables ``` #### 添加开放端口规则 为了开放某个特定的端口(例如80端口),可以按照如下方式进行设置: 1. **添加允许站流量的规则** 执行以下命令以允许外部访问该端口上的服务: ```bash sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT ``` 这条命令的作用是向 `INPUT` 链中追加一条规则,允许目标端口号为80的TCP数据包通过防火墙[^4]。 2. **保存规则以便持久化** 默认情况下,在重新启动服务器之后,上述修改可能会丢失。因此需要保存当前的 `iptables` 规则集到文件中,从而使其永久有效。 可以运行下面这条指令完成保存动作: ```bash sudo service iptables save ``` 3. **验证新加的规则是否成功应用** 查看现有的所有规则列表,并查找刚刚新增的内容是否存在以及状态正常与否: ```bash sudo iptables -L -n -v ``` 此处会显示详细的表项详情,包括匹配条件、计数器数值等信息[^2]。 #### 自动加载规则于每次开机时 除了手动调用 `service iptables save` 命令外,还有另一种更推荐的方法就是利用 `firewalld` 或者直接编辑 `/etc/sysconfig/iptables` 文件实现自动化管理目的[^3]。 对于后者而言,只需将自定义好的策略写回到对应位置即可;而对于前者来说,则需调整相关参数让其支持兼容模式下的恢复功能。 --- ### 示例脚本:批量处理多个端口开启需求 当存在大量不同类型的网络通信请求待解决时,可考虑编写简单的Shell Script简化流程: ```bash #!/bin/bash ports=(80 443 22) for port in "${ports[@]}";do echo "Opening Port $port..." sudo iptables -A INPUT -p tcp --dport "$port" -j ACCEPT done echo "Saving Iptables Rules..." sudo service iptables save echo "Rules have been updated and saved." ``` 此段程序能够一次性打开数组变量所列举出来的全部端口资源供外界连接使用。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值