Iptables简易指南
显示Iptables规则
要列出所有激活的iptables规则,使用-S参数
iptables -S以下案例是部署了docker和kvm的服务器的默认iptables
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N DOCKER
-N DOCKER-ISOLATION
-A INPUT -i virbr0 -p udp -m udp --dport 5[903972.334145] root[40469]: alicmd:root:iptables -S:root ttyS0 2016-12-30 09:48
3 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT
-A FORWARD -d 192.168.122.0/24 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -d 192.168.122.0/24 -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT
-A FORWARD -i virbr0 -o virbr0 -j ACCEPT
-A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -j DOCKER-ISOLATION
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A OUTPUT -o virbr0 -p udp -m udp --dport 68 -j ACCEPT
-A DOCKER-ISOLATION -j RETURN# 以表方式列出规则
输出
如果要指定chain来检查,例如INPUT,OUTPUT或TCP灯,可以通过-L参数来指定链路(chain),这里检查INPUT的链路
在链路中的列头含义:
target 如果数据包符合规则,则执行这个指定的规则。例如,一个数据包可以被接受,抛弃,纪录或发送给另外一个链路来匹配更多规则。
port 协议端口,例如
tcpudpicmp或allopt 表示IP选项
source 数据流量的源IP地址或子网,或者
anywheredestination 目标IP地址或子网,或者
anywhere
显示数据包计数和聚合大小
当列出iptables规则,可以显示数据包的数量,并且聚合数据包的大小,以及符合每个匹配规则。结合使用`-L和-v`参数
例如展示转发列表
注意上述显示的列表中
pkts和bytes显示了数据流聚合的统计纪录。
重置数据包计数
如果需要清零掉规则纪录的表,使用-Z参数。特别是需要重新计算:
也可以单独清理某个数据链的计数
删除指定规则
可以使用iptables命令的-D参数来删除指定规则,可以通过iptables -S来检查规则列表
输出显示
现在删除掉这个规则
注意:对于NAT规则需要使用
-t nat才能处理
清除规则链
使用参数-F或者--flush来刷新规则
清除所有规则
参考
Last updated
Was this helpful?