Linux防火墙命令

本文以CentOS 7为例。

防火墙常用操作

开启防火墙

1
systemctl start firewalld.service

关闭防火墙

1
systemctl stop firewalld.service

开机自启动

1
systemctl enable firewalld.service

关闭开机自启动

1
systemctl disabel firewalld.service

查看开放的端口

1
2
3
firewall-cmd --list-all
or
firewall-cmd --list-ports

添加永久开放端口

1
firewall-cmd --zone=public --add-port=3306/tcp --permanent

移除开放端口

1
firewall-cmd --remove-port=3306/tcp --permanent

重启防火墙生效

1
firewall-cmd --reload

查看规则

1
iptables -L -n

查看开放的服务

1
firewall-cmd --list-services

查看防火墙状态

1
firewall-cmd --state
伪装IP

检查是否允许伪装IP

1
firewall-cmd --query-masquerade

允许防火墙伪装IP

1
firewall-cmd --add-masquerade

禁止防火墙伪装IP

1
firewall-cmd --remove-masquerade
端口映射

转发的目的不指定 IP 的话就默认为本机,如果指定了 IP 却没指定端口,则默认使用来源端口。如果配置好端口转发之后不能用,可以检查以下两个方面的问题:

  1. 比如我将 80 端口转发至 8080 端口,首先检查本地的 80 端口和目标的 8080 端口是否开放监听了(也就是监听程序是否运行了);
  2. 检查是否允许伪装 IP,没允许的话要开启伪装 IP。

添加映射

1
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.0.1:toport=8080

删除映射

1
firewall-cmd --remove-forward-port=proto=80:proto=tcp:toaddr=192.168.0.1:toport=8080