自CentOS 7开始,原先的iptables已经被替换为动态防火墙后台程序firewalld用来做系统层面的防火墙服务,之前的iptables已经被抛弃掉,各大Linux发行版本也相继支持firewalld
如果是CentOS 7执行以下指令
$ yum install firewalld
如果是CentOS 8执行以下指令
$ dnf install firewalld
启动firewall
$ systemctl start firewalld
设置开机自启
$ systemctl enable firewalld
删除开机自启
$ systemctl disable firewalld
停止firewall
$ systemctl stop firewalld
查看运行状态
$ firewall-cmd --state
动态更新配置文件
$ firewall-cmd --reload
$ firewall-cmd --zone=public --list-ports
-permanent
永久生效,没有此参数重启后失效$ firewall-cmd --zone=public --add-port=80/tcp --permanent
$ firewall-cmd --zone=public --add-port=9000-9999/tcp --permanent
$ firewall-cmd --zone=public --remove-port=80/tcp --permanent
$ firewall-cmd --permanent --add-service=http
$ firewall-cmd --permanent --add-service=https
$ firewall-cmd --permanent --remove-service=ssh
$ firewall-cmd --get-services
开启路由转发
$ echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
$ sysctl -p
开启防火墙的流量伪装功能
$ firewall-cmd --zone=public --permanent --add-masquerade
开启TCP流量端口
$ firewall-cmd --add-port=8080/tcp --permanent
开启UDP流量端口
$ firewall-cmd --add-port=8080/udp --permanent
开启TCP流量转发
$ firewall-cmd --add-forward-port=port=8080:proto=tcp:toaddr=2.2.2.2:toport=666 --permanent
开启UDP流量转发
$ firewall-cmd --add-forward-port=port=8080:proto=udp:toaddr=2.2.2.2:toport=666 --permanent
重载配置文件
$ firewall-cmd --reload