Linux下對(duì)端口流量進(jìn)行統(tǒng)計(jì)
在不修改源代碼的情況下對(duì)程序暴露端口流量進(jìn)行監(jiān)控統(tǒng)計(jì)侠仇,可以利用Linux中自帶的Iptable添加簡(jiǎn)單的規(guī)則讓其起到端口流量統(tǒng)計(jì)的作用轻姿。但是需要注意的是在服務(wù)器重啟、Iptable服務(wù)重啟的時(shí)候統(tǒng)計(jì)數(shù)據(jù)會(huì)被重置清零。
添加需要統(tǒng)計(jì)的端口
1互亮、輸入監(jiān)控
下面示例是監(jiān)控目標(biāo)端口是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)計(jì)數(shù)據(jù)
iptables -L -v -n -x
示例結(jié)果:
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)計(jì)數(shù)據(jù)
注意:這里是重置所有端口的統(tǒng)計(jì)數(shù)據(jù)
1胳挎、重置所有輸入端口
Iptable -Z INPUT
2饼疙、重置所有輸出端口
Iptable -Z OUTPUT
移除統(tǒng)計(jì)端口
1溺森、移除輸入端口
iptables -D INPUT -p tcp --dport 8080
2慕爬、移除輸出端口
iptables -D OUTPUT -p tcp --sport 8080