流量统计:修订间差异
Luojie-dune(留言 | 贡献) |
无编辑摘要 |
||
第120行: | 第120行: | ||
阅读更多关于选项的文档,这样就可以在vnstat的主页面中改变它的输出了。 | 阅读更多关于选项的文档,这样就可以在vnstat的主页面中改变它的输出了。 | ||
[[Category:网络]] | |||
2010年7月25日 (日) 15:50的版本
ipac-ng
其对象人群拥有小的家庭网络,且希望监控因特网的上传或者下载数量而非LAN的本地流量。如果因特网服务提供商设置了每月带宽限制,且同时又需要进行本地网络文件传输,这时它是很有用的。
这个说明书将引导设置IPAC-NG,一个基于iptables/ipchains的IP统计工具包。
安装
你需要访问通用软件仓库——如果需要更多信息,请参照AddingRepositoriesHowto。
首先安装ipac-ng,可以通过新立得(SynapticHowto)或者在终端中输入:
sudo aptitude install ipac-ng
配置
编辑 /etc/ipac-ng/rules.conf 以指明所要记录的通信的类型。
要想简单地测量上传和下载总量,可键入:
# /etc/ipac-ng/rules.conf total upload |ipac~i|eth0|all|| total download |ipac~o|eth0|all||
注意:将eth0替换为你想要测量的网络适配器的名称。
编辑 /etc/ipac-ng/ipac.conf 并把存储方式改为 gdbm ,否则日志将占据很大的空间。(或许也可以使用postgre)
# /etc/ipac-ng/ipac.conf storage = gdbm
要忽略本地网络(LAN)通信量的话,要向启动脚本终加入一些简单的iptable规则。
编辑 /etc/init.d/ipac-ng 并增加 ## 之后的四行,具体如下:
case "$1" in start) echo -n "Starting $DESC: " check $DAEMON -S $IPTABLES -I INPUT -s aaa.bbb.ccc.0/24 -j ACCEPT $IPTABLES -I OUTPUT -d aaa.bbb.ccc.0/24 -j ACCEPT echo "$NAME." ;; stop) echo -n "Stopping $DESC: " # fetch accounting before removing the rules $DAEMON echo -n "flushing IP accounting rules ..." $IPTABLES --flush ipac~o $IPTABLES --flush ipac~i $IPTABLES --flush ipac~fi $IPTABLES --flush ipac~fo # here should the ipac_* rule be removed from INPUT OUTPUT and FORWARD but --flush is # evil because it would remove all rules in these chains. $IPTABLES -D INPUT -s aaa.bbb.ccc.0/24 -j ACCEPT $IPTABLES -D OUTPUT -d aaa.bbb.ccc.0/24 -j ACCEPT echo "$NAME stopped." ;;
注意,将 aaa.bbb.ccc.0 替换为本地网络。例如,如果路由器地址是 192.168.0.1 ,则应使用 192.168.0.0 。
就这样了!当你的电脑运行时,每十分钟总的通信量将会被自动从iptable获取。要想查看总通信量,要使用“ipacsum”。它可以被配置为显示一个特定的时间间隔,甚至可以绘出通信量的曲线图。
链接
vnstat
vnstat 是另一个可以用来监视带宽使用量的程序。它比ipac-ng更简单易用。 vnstat的一个优点是它不是一个运行的守护程序,所以它几乎不占用内存。它由 cron 任务创建,每五分钟运行一次。
安装
vnstat包可以不依赖于其他而很容易地从软件仓库中安装。
sudo apt-get install vnstat
设置
vnstat照道理应该可以被任何用户使用,所以应首先给它正确的(访问)许可。下面的指令允许任何用户这个特性。如果需要,你可以建立一个组,以便只有组里的用户能够使用它。
sudo chmod o+x /usr/bin/vnstat
sudo chmod o+wx /var/lib/vnstat/
现在应该已经可以运行了。
使用
要创建 cron 任务,简单地运行这个命令
vnstat -u -i ath0
将ath0替换为要监控的接口
这将在 /var/lib/vnstat/ 下创建一个收集几口数据的文件。一个 cron 任务将每五分钟运行一次并更新数据。下面是未使用选项时的一个示例
Database updated: Thu Jan 12 22:20:01 2006 ath0 received: 0.11 MB (nan%) transmitted: 0.01 MB (nan%) total: 0.12 MB rx | tx | total -----------------------+------------+----------- today 0.11 MB | 0.01 MB | 0.12 MB -----------------------+------------+----------- estimated 0 MB | 0 MB | 0 MB
阅读更多关于选项的文档,这样就可以在vnstat的主页面中改变它的输出了。