背景
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
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)