zoukankan      html  css  js  c++  java
  • 利用iptables实现基于端口的网络流量统计

    如何统计某个应用的网络流量(包括网络流入量和网络流出量)问题,可以转换成如何基于端口号进行网络流量统计的问题。大部分网络应用程序都是传输层及以上的协议,因此基于端口号(tcp, udp)统计网络流量基本能覆盖到此类需求。

    利用iptables实现基于端口的流量统计是一种比较简单可行的方案。它可以对流经每一条规则的包数量和流量进行计数。例如要对常规的Web服务器进行流量统计,可以设置如下规则:

    1
    2
    
    root@debian:~# iptables -A INPUT -p tcp --dport 80
    root@debian:~# iptables -A OUTPUT -p tcp --sport 80

    第一条规则表示,在INPUT链上添加一条规则,该条规则对所有来自外部网络的、与本机80端口通信的请求有效,即网络流入量,第二条规则则相反, 它用于统计从本机80端口发出的网络流量,即网络流出量。因为我们的目的是统计流量,故此处可以省略ACCEPT或DROP之类的动作。

    查看流量计数时,只要加上-nvx参数即可:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    root@debian:~# iptables -nvx -L
    Chain INPUT (policy ACCEPT 320 packets, 33045 bytes)
    pkts     bytes target     prot opt in     out     source  destination         
    0        785      tcp  --  *      *   0.0.0.0/0   0.0.0.0/0 tcp dpt:80
     
    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts     bytes target     prot opt in     out     source  destination         
     
    Chain OUTPUT (policy ACCEPT 311 packets, 33711 bytes)
    pkts     bytes target     prot opt in     out     source  destination         
    0        1252      tcp  --  *      *   0.0.0.0/0   0.0.0.0/0 tcp spt:80

    iptables的-vx参数表示详细信息,可以以字节为单位显示包数量和网络流量,-n参数表示以数字方式表示ip地址和端口号等,不加的话 iptables会默认将ip反解为主机名,例如127.0.0.1用localhost表示,端口号显示为协议号,例如80显示成http, 5672显示成amqp。

    利用iptables规则统计网络流量可以保证应用在关闭重启后统计数据不丢失,但是对于主机重启的情况,它就无能为力了,因为默认情况下主机重启 iptables规则会清空,即使使用开机任务等方式重建iptables规则,流量计数器也会清零。解决此类问题一个变通的方法是定期将网络流量值保存 到文件,并清0重新计数,定期更新的时间越短,机器重启造成的流量计数丢失问题影响越小(特别涉及计费相关的业务)。

    创建一个crontab任务,定期将流量统计追加至文件,例如:

    1
    
    root@debian:~# iptables -vxn -L >> file

    也可以选择直接将流量值追加到文件:

    1
    
    root@debian:~# iptables -vxn -L | awk '{print $2}' >> file

    当写入文件成功后,记得将流量值清0:

    1
    
    root@debian:~# iptables -Z

    -Z参数支持指定链名称和规则索引号,例如下列命令表示清空INPUT链的第一条规则的流量计数器。

    1
    
    root@debian:~# iptables -Z INPUT 1

    Reference:
    [1] iptables man page: http://ipset.netfilter.org/iptables.man.html.

    转载:

    http://fengchj.com/?p=2003

  • 相关阅读:
    Sentinel-1雷达数据可以免费下载
    影像下载
    遥感影像下载地址
    ERS卫星
    alos 数据下载
    RMSE、RMS、标准差
    Landsat8数据不同波段组合的用途
    资源下载
    短视频录制的一个例子,拥有美颜滤镜、人脸贴纸功能。
    an iOS demo to demonstrate how to decorate face like faceu
  • 原文地址:https://www.cnblogs.com/pangguoping/p/5715539.html
Copyright © 2011-2022 走看看