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

<span style=“font-size: 20px; font-weight: bold;”>背景</span> <br/> <br/>VPS一般都有流量限制,很多主机也都没有提供流量监控,特别是我使用的Amazon 免费的EC2服务,超过30G/月的流量将自动从信用卡扣大把的美金,这太危险了,以前就有过惨痛的教训,因此决定为自己写一个小工具通过web来监控vps流量,从此就安心了。 <br/> <br/>如果也和我一样使用EC2做VPN的,同时又爱折腾的,可尝试使用。 <br/> <br/>这里是DEMO(请仅使用支持html5的chrome/firefox 4+/safari来访问):   http://ec2.kongwu.net:8080/ <br/><h2>准备</h2> <br/>正好试验下node和websocket的实时特性,原理可以参加我的另外一篇:<a href=“http://cnodejs.org/blog/?p=273” target="_blank">《websocket与node.js的完美结合》</a>, <br/><ul> <br/> <li>只能运行在linux下</li> <br/> <li>下载node.js</li> <br/> <li>下载vnstat</li> <br/></ul> <br/><h2>安装</h2> <br/>安装node.js <br/> <br/>node.js下载地址: http://nodejs.org/dist/node-v0.4.1.tar.gz <br/> <br/>安装 <br/> <br/>./configure; make; sudo make install <br/> <br/>安装vnstat <br/> <br/>vnstat下载地址: http://humdi.net/vnstat/vnstat-1.10.tar.gz <br/> <br/>安装 <br/> <br/>make; sudo make install <br/> <br/>下载并解压monsocket: http://cnodejs.googlecode.com/files/monsocket0.1.tar.gz <br/> <br/>使系统在后台运行: <br/> <br/><pre><code>nohup node mon-server.js >/dev/null 2>&1 &</pre></code> <br/> <br/>另外对于使用亚马逊免费云计算服务Ec2的人(比如我)来说,还提供了一种简单的自动流量控制,当流量快达到上线时,自动发送邮件,并且强制关闭vpn服务,这样就不用担心由于流量超限,被扣掉白花花的美金了。 <br/> <br/>将这个特别定制脚本加入到crontab中去: <br/> <br/><pre><code>0 0 * * * /home/ec2-user/projects/cnodejs/monsocket/vpsmon/ec2freecheck.sh</pre></code> <br/><h2>总结</h2> <br/>这个非常简单的东西,只可以实时监控到每天的vpn流量,又可以避免流量超过限制。 <br/> <br/>如果你也如我般想测试下node和websocket,同时也爱折腾,可以试试,所有代码下载地址如下: <br/> <br/>http://cnodejs.googlecode.com/files/monsocket0.1.tar.gz <br/> <br/>  <br/> <br/>

7 回复

ssh呢,一样的吗? <br/>谢谢!

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

貌似失效了?

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

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

回到顶部