iptables学习(二):常用命令
大约 2 分钟
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