Linux下對端口流量進行統(tǒng)計
在不修改源代碼的情況下對程序暴露端口流量進行監(jiān)控統(tǒng)計,可以利用Linux中自帶的Iptable添加簡單的規(guī)則讓其起到端口流量統(tǒng)計的作用。但是需要注意的是在服務器重啟、Iptable服務重啟的時候統(tǒng)計數(shù)據會被重置清零。
添加需要統(tǒng)計的端口
1、輸入監(jiān)控
下面示例是監(jiān)控目標端口是8080的輸入流量 --dport(destination port 的縮寫)
iptables -A INPUT -p tcp --dport 8080
2、輸出監(jiān)控
下面示例是監(jiān)控來源端口是8080的輸出流量 --sport(source port 的縮寫)
iptables -A OUTPUT -p tcp --sport 8080
查看統(tǒng)計數(shù)據
iptables -L -v -n -x
示例結果:
8080端口接收的流量為2885字節(jié),發(fā)送的流量是8240字節(jié)
Chain INPUT (policy ACCEPT 202 packets, 25187 bytes)
pkts bytes target prot opt in out source destination
18 2885 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 184 packets, 45774 bytes)
pkts bytes target prot opt in out source destination
12 8240 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:8080
重置統(tǒng)計數(shù)據
注意:這里是重置所有端口的統(tǒng)計數(shù)據
1、重置所有輸入端口
Iptable -Z INPUT
2、重置所有輸出端口
Iptable -Z OUTPUT
移除統(tǒng)計端口
1、移除輸入端口
iptables -D INPUT -p tcp --dport 8080
2、移除輸出端口
iptables -D OUTPUT -p tcp --sport 8080