前言
我們都知道:iptables是linux系統下用來配置netfilter子系統的一個client tool。
配套的常用命令有:iptables
-- 對表、鏈、規則進行配置iptables-save
-- dump 已配置的規則,可以用 > 重定向到一個文件中iptables-restore
-- 從之前導出的iptable規則配置文件加載規則。
今天主要講一下iptables-save的輸出格式怎么看:
(網上找了很久沒找到相關的介紹,只能自己來了…)
格式詳解
Controller@localhost # iptables-save -t nat -c
說明:-t 表示要dump的表(不指定的話dump所有表的配置)。-c 表示輸出中顯示每條規則當前報文計數。
# Generated by iptables-save v1.4.21 on Tue Jan 15 15:42:32 2019
--這是注釋
*nat
-- 這表示下面這些是nat表中的配置
:PREROUTING ACCEPT [5129516:445315174]
-- :PREROUTING ACCEPT,表示nat表中的PREROUTING 鏈默認報文策略是接受(匹配不到規則繼續) ,
-- [5129516:445315174] 即[packet, bytes],表示當前有5129516個包(445315174字節)經過nat表的PREROUTING 鏈
:INPUT ACCEPT [942957:151143842]
:OUTPUT ACCEPT [23898:3536261]
:POSTROUTING ACCEPT [23898:3536261]
-- 解釋同上
:DOCKER - [0:0]
-- 解釋同上(此條是自定義鏈)
---------- 下面開始按條輸出所有規則----------
[4075:366986] -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-- [4075:366986]即[packet, bytes],表示經過此規則的包數,字節數。 后面部分則是用iptables命令配置此規則的命令(詳解選項可參考iptables幫助)。
[0:0] -A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
[0:0] -A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
[2:188] -A POSTROUTING -s 192.168.122.0/24 -d 224.0.0.0/24 -j RETURN
[0:0] -A POSTROUTING -s 192.168.122.0/24 -d 255.255.255.255/32 -j RETURN
[0:0] -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
[0:0] -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
[0:0] -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE
[0:0] -A DOCKER -i docker0 -j RETURN
--以上規則同第一條規則的解釋
COMMIT
-- 應用上述配置
# Completed on Tue Jan 15 15:42:32 2019
哈哈,是不是很簡單:)
總結
其實iptables-save輸出的是iptable規則的當前配置,是從配置角度輸出的(方便由iptable-restore解析並重新配置),(-c參數也可輸出包計數信息)
如果想查看當前規則的狀態,用iptables命令則更清晰明了。
舉例:
Controller@localhost # iptables --table filter --list VXLAN-INPUT --line-numbers -n -v
Chain VXLAN-INPUT (1 references)
num pkts bytes target prot opt in out source destination
1 0 0 DROP all -- storage_data0 * 0.0.0.0/0 0.0.0.0/0
2 0 0 DROP all -- storage_data1 * 0.0.0.0/0 0.0.0.0/0
3 0 0 DROP all -- brcps * 0.0.0.0/0 0.0.0.0/0
4 0 0 DROP all -- external_api * 0.0.0.0/0 0.0.0.0/0
5 0 0 DROP all -- external_om * 0.0.0.0/0 0.0.0.0/0
6 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0
-- 這個輸出就不用解釋了吧,有表頭,很清晰!
iptables --table filter --list VXLAN-INPUT --line-numbers -n -v 命令中參數解釋:
--table filter --list VXLAN-INPUT
:輸出filter 表的VXLAN-INPUT鏈下的所有規則。--line-numbers
:顯示規則號(按號刪除規則很方便)。-v
:顯示流量統計信息。