CentOS 7及更高版本默认使用firewalld作为防火墙管理工具,而早期版本则主要使用iptaBLes,下面将详细介绍如何在CentOS中使用这两种工具来管理和开放端口,并附上相关的命令和操作步骤。
iptables
1、打开/关闭/重启防火墙
开启防火墙(重启后永久生效):chkconfig iptables on
关闭防火墙(重启后永久生效):chkconfig iptables off
开启防火墙(即时生效,重启后失效):service iptables start
关闭防火墙(即时生效,重启后失效):service iptables stop
重启防火墙:service iptables restart
2、查看打开的端口
/etc/init.d/iptables status
3、打开某个端口(以8080为例)
开启端口:iptables A INPUT p tcp dport 8080 j ACCEPT
保存并重启防火墙:/etc/rc.d/init.d/iptables save && /etc/rc.d/init.d/iptables restart
4、打开49152~65534之间的端口
iptables A INPUT p tcp dport 49152:65534 j ACCEPT
同样需要保存设置并重启防火墙。
5、其他打开方式
通过修改/etc/sysconfig/iptables
文件的方式开启端口,
```bash
vi /etc/sysconfig/iptables
```
在文件中增加一行:
```bash
A RHFirewall1INPUT m state –state NEW m tcp p tcp –dport 8080 j ACCEPT
```
firewalld
1、启动防火墙
systemctl start firewalld
2、禁用防火墙
systemctl stop firewalld
3、设置开机启动
systemctl enable firewalld
4、停止并禁用开机启动
systemctl disable firewalld
5、重启防火墙
firewallcmd reload
6、查看状态
systemctl status firewalld
或firewallcmd state
7、查看版本
firewallcmd version
8、查看帮助
firewallcmd help
9、查看区域信息
firewallcmd getactivezones
10、查看指定接口所属区域信息
firewallcmd getzoneofinterface=eth0
11、拒绝所有包
firewallcmd panicon
12、取消拒绝状态
firewallcmd panicoff
13、查看是否拒绝
firewallcmd querypanic
14、将接口添加到区域(默认接口都在public)
firewallcmd zone=public addinterface=eth0
(永久生效再加上permanent
然后reload防火墙)
15、设置默认接口区域
firewallcmd setdefaultzone=public
(立即生效,无需重启)
16、更新防火墙规则
firewallcmd reload
或firewallcmd completereload
(两者的区别是第一个无需断开连接,第二个需要断开连接,类似重启服务)
17、查看指定区域所有打开的端口
firewallcmd zone=public listports
18、在指定区域打开端口(记得重启防火墙)
firewallcmd zone=public addport=80/tcp
(永久生效再加上permanent
)
FAQs
1、如何查看当前开放的端口?
对于iptables:使用命令/etc/init.d/iptables status
或iptables L n v
。
对于firewalld:使用命令firewallcmd listall
或firewallcmd zone=public listports
。
2、如何永久开放一个端口?
对于iptables:添加规则并保存配置,iptables A INPUT p tcp dport 8080 j ACCEPT
,然后运行/etc/rc.d/init.d/iptables save && /etc/rc.d/init.d/iptables restart
。
对于firewalld:使用命令firewallcmd zone=public addport=8080/tcp permanent
,然后重新加载防火墙配置:firewallcmd reload
。