基于node的VPS简易流量监控
发布于 4年前 作者 kongwu 3739 次浏览 最后一次编辑是 3年前

背景

VPS一般都有流量限制,很多主机也都没有提供流量监控,特别是我使用的Amazon 免费的EC2服务,超过30G/月的流量将自动从信用卡扣大把的美金,这太危险了,以前就有过惨痛的教训,因此决定为自己写一个小工具通过web来监控vps流量,从此就安心了。

如果也和我一样使用EC2做VPN的,同时又爱折腾的,可尝试使用。

这里是DEMO(请仅使用支持html5的chrome/firefox 4+/safari来访问):   http://ec2.kongwu.net:8080/

准备


正好试验下node和websocket的实时特性,原理可以参加我的另外一篇:《websocket与node.js的完美结合》

  • 只能运行在linux下

  • 下载node.js

  • 下载vnstat


安装


安装node.js

node.js下载地址: http://nodejs.org/dist/node-v0.4.1.tar.gz

安装

./configure; make; sudo make install

安装vnstat

vnstat下载地址: http://humdi.net/vnstat/vnstat-1.10.tar.gz

安装

make; sudo make install

下载并解压monsocket: http://cnodejs.googlecode.com/files/monsocket0.1.tar.gz

使系统在后台运行:

nohup node mon-server.js >/dev/null 2>&1 &


另外对于使用亚马逊免费云计算服务Ec2的人(比如我)来说,还提供了一种简单的自动流量控制,当流量快达到上线时,自动发送邮件,并且强制关闭vpn服务,这样就不用担心由于流量超限,被扣掉白花花的美金了。

将这个特别定制脚本加入到crontab中去:

0 0  * * * /home/ec2-user/projects/cnodejs/monsocket/vpsmon/ec2freecheck.sh

总结


这个非常简单的东西,只可以实时监控到每天的vpn流量,又可以避免流量超过限制。

如果你也如我般想测试下node和websocket,同时也爱折腾,可以试试,所有代码下载地址如下:

http://cnodejs.googlecode.com/files/monsocket0.1.tar.gz

 

5 回复

ssh呢,一样的吗?
谢谢!

一样的,vnstat统计的是网卡上的流量,跟什么协议产生的没关系

貌似失效了?

crypto.js:76
return new Hash(hash);

TypeError: undefined is not a function
at CALL_NON_FUNCTION_AS_CONSTRUCTOR (native)
at Object.createHash (crypto.js:76:10)
at Object.draft76 (/home/ec2-user/monsocket/lib/ws/connection.js:380:27)
at new Connection (/home/ec2-user/monsocket/lib/ws/connection.js:140:22)
at Server. (/home/ec2-user/monsocket/lib/ws/server.js:65:7)
at Server.emit (events.js:59:20)
at Socket. (http.js:993:14)
at Socket._onReadable (net.js:654:27)
at IOWatcher.onReadable [as callback] (net.js:156:10)

另外对于使用亚马逊免费云计算服务Ec2的人(比如我)来说,还提供了一种简单的自动流量控制,当流量快达到上线时,自动发送邮件,并且强制关闭vpn服务,这样就不用担心由于流量超限,被扣掉白花花的美金了。

这个在哪里,我咋没找到,请指教

回到顶部