zoukankan      html  css  js  c++  java
  • 使用iptables统计流量

    背景:

    ​ 使用iftop命令统计带宽可能会出现顺时打高网卡的情况。因此使用iptables来进行带宽数据。

    实现思路

    • 新建一个链
    • 在新链中添加一个ACCEPT的rule
    • 引用新添加的链

    举个例子:新建一个链统计本机间的带宽数据

    #新建一个名为LOCAL_CHAN的链
    iptables -N LOCAL_CHAN
    #添加一个规则,捕获来自127.0.0.1的端口
    iptables -A LOCAL_CHAN -p tcp -j ACCEPT -s 127.0.0.1
    #在默认的链中引起新创建的LOCAL_CHAN
    iptables -I INPUT -p tcp -j LOCAL_CHAN
    ##这一行命令表示,"-j LOCAL_CHAN"表示:所有的tcp报文将由自定义链"LOCAL_CHAN"中的规则进行处理
    

    数据获取

    使用命令iptables -nvxL LOCAL_CHAN即可获取对应链的带宽详情

    ps:

    • 当传输量较大时, iptables 预设会以 K、M、G 等单位来显示传输量, 与一般的计算不同, 这些单位分别代表 1000、1,000,000 与 1,000,000,000 bytes。就阅读上, 使用这些单位能让我们更容易地判断数量大小, 但是未来如果以程序统计传输总量, 使用较精确的数字才能方便地进行数字的比较。此时可以如下使用 “-x” 参数, 强迫 iptables 显示精确的传输量
    • -v 输出详细信息,包含通过该规则的数据包数量,总字节数及相应的网络接口
    • -L 查看当前表的所有规则
    • -n 不对ip地址进行反查,加上这个参数显示速度会快很多

    byte记录从这个rule生效到现在的总字节

    1 references表示这个chan被引用了一次

    总结:引入链时尽量最小单位进行引用,需要结合环境和背景进行使用。

    因为我的INPUT链 默认规则是ACCEPT,因此这样定义还可以正常使用。

    参考文档:

    https://blog.csdn.net/lbyyy/article/details/78898931

    https://www.itkylin.com/linux下使用iptables统计网络流量.html

  • 相关阅读:
    基于SQL脚本将数据库表及字段提取为C#中的类
    libiconv字符集转换库在C#中的使用
    select选中事件
    PHP 字符串处理
    织梦自定义标签
    JQuery 实现 Tab 切换 index
    Juery 实现淡出 淡现效果
    SEO之H1,H2,H3,H4....STRONG使用方法
    Robots.txt 编写
    JS 获取时间
  • 原文地址:https://www.cnblogs.com/feng0919/p/15203395.html
Copyright © 2011-2022 走看看