iptables-save 輸出格式詳解

前言格式詳解總結linux

前言

咱們都知道:iptables是linux系統下用來配置netfilter子系統的一個client tool。nginx

配套的經常使用命令有:
iptables -- 對錶、鏈、規則進行配置
iptables-save -- dump 已配置的規則,能夠用 > 重定向到一個文件中
iptables-restore -- 從以前導出的iptable規則配置文件加載規則。docker

今天主要講一下iptables-save的輸出格式怎麼看:
(網上找了好久沒找到相關的介紹,只能本身來了…)api

格式詳解

Controller@localhost # iptables-save -t nat -capp

說明:-t 表示要dump的表(不指定的話dump全部表的配置)。-c 表示輸出中顯示每條規則當前報文計數。tcp

# 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

哈哈,是否是很簡單:)lua

總結

其實iptables-save輸出的是iptable規則的當前配置,是從配置角度輸出的(方便由iptable-restore解析並從新配置),(-c參數也可輸出包計數信息)spa

若是想查看當前規則的狀態,用iptables命令則更清晰明瞭。rest

舉例:code

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 命令中參數解釋:

  1. --table filter --list VXLAN-INPUT :輸出filter 表的VXLAN-INPUT鏈下的全部規則。
  2. --line-numbers:顯示規則號(按號刪除規則很方便)。
  3. -v:顯示流量統計信息。
相關文章
相關標籤/搜索