iptables学习(二):常用命令

tlin82大约 2 分钟networkingnetworking防火墙

iptables的常用命令

查看规则。

iptables -L -t <表名> -v --line-numbers
  • 表名有: nat,filter,mangle

举例:查看nat表中的规则

iptables -L -t nat -v --line-numbers

输出类似:


Chain POSTROUTING (policy ACCEPT 285 packets, 37567 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 MASQUERADE  all  --  any    !docker0  172.17.0.0/16        anywhere
2        0     0 MASQUERADE  all  --  any    !br-2810b48c01b9  172.18.0.0/16        anywhere
3        0     0 MASQUERADE  tcp  --  any    any     172.18.0.4           172.18.0.4           tcp dpt:http
4        0     0 MASQUERADE  tcp  --  any    any     172.18.0.5           172.18.0.5           tcp dpt:mysql
5        4   240 MASQUERADE  all  --  any    eth0    192.0.2.0/24         anywhere

添加规则

2.1 指定链和表添加规则

iptables -t <表名> -A <链名> -d <目标网络/主机> -s <> -j <动作> -i <网络接口名>

举例:添加POSTROUTING链的1条规则实现源地址转换

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -i eth0 -j MASQUERADE

删除规则

定位规则编号

iptables -L --line-nubmers

  • 3.1 指定链,规则号删除
iptables -D <链名> <n>

举例:删除POSTROUTING链的1号规则

iptables -D POSTROUTING 1
  • 3.2 清空和删除所有规则
iptables -F
iptables-save

保存规则

默认iptables规则保存在内存里,系统重启后消失。所以要记得保存到文件。

  • 如果使用了iptables.service来管理,CentOS下执行/sbin/iptables-save来保存到/etc/sysconfig/iptables,系统重启后会从该文件加载规则配置。
iptables-save 
  • 如果没有使用iptable.service来管理规则配置(使用命令/sbin/iptables等),管理员需要手动调用/sbin/iptables-save保存到文件,然后再使用 /sbin/iptables-restore手动加载。
/sbin/iptables-save > /etc/sysconfig/iptables
/sbin/iptables-restore  < /etc/sysconfig/iptables

(未完待续)