Gavin

shadowsocks监控流量及每分钟使用情况

每分钟使用情况

如果需要查看shadowsocks当前有哪些用户在访问,只需使用netstat命令查看该端口即可

写了个简单的脚本


1
2
3
4
5
6
7
8
#!/bin/sh

#当前使用统计
filename="/data/log/vpn/monitor.log"
regex="你开放的端口起始与结尾"

date +"[%Y-%m-%d %H:%M:%S]" >> $filename
netstat -anp | egrep $regex | grep -E "tcp.*ESTABLISHED" | awk '{print $4, $5}' | cut -d: -f2 | sort -u >> $filename

然后修改crontab,一分钟检查一次即可


1
* * * * * /home/shadowsocks/monitor.sh

流量监控

流量监控使用iptables可以简单的做到


1
iptables -I OUTPUT -s 你的服务器IP -p tcp --sport 开放的端口

那么如何查看当前的流量呢


1
iptables -n -v -L -t filter

效果如下


1
2
3
4
5
6
7
8
9
10
Chain INPUT (policy ACCEPT 153K packets, 41M bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 155K packets, 43M bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0            tcp  --  *      *       服务器IP       0.0.0.0/0           tcp spt:端口1
24350   21M            tcp  --  *      *       服务器IP       0.0.0.0/0           tcp spt:端口2

那么也做成上面的自动的


1
2
3
4
5
6
7
8
#统计流量
flowname="/data/log/vpn/flow.log"
flownametail="/data/log/vpn/flow_tail.log"
flowregex="spt:端口起始到结尾"

date +"[%Y-%m-%d %H:%M:%S]" >> $flowname
iptables -n -v -L -t filter | egrep $flowregex | awk -F ' ' '{print $10 "\t" $2}' >> $flowname
iptables -n -v -L -t filter | egrep $flowregex | awk -F ' ' '{print $10 "\t" $2}' > $flownametail

最后,晒张截图,花了两个小时做的简单的工具,方便自己使用

shadowsocks

码字很辛苦,转载请注明来自淡兰色的海洋《shadowsocks监控流量及每分钟使用情况》

评论

  1. GB #1

    你好,请问假如我配置了44444端口,客户端会通过44444连接服务端,那服务端返回客户端数据的时候全部是通过44444这个端口吗?会不会遗漏某些流量?因为我找资料的时候看到一篇文章(http://yzs.me/2230.html/comment-page-1)里写到:

    “出网并不存在特定端口,只有已经连接的用户的目标端口,而目标端口不是固定的。那也就不能简单通过--sport/--dport参数来匹配了”

    不是专业的,所以有点困惑。

    回复
    2015-05-6
    • Gavin

      可能他说的更专业点吧,你按照他的做法试试看
      我不需要那么准确的数据,所以iptables指定端口的出流量可以满足我的需求

      回复
      2015-05-14
      • Xin

        vps流量是有费用的(有限制),不同的vps不一样,有的只计费出网流量,有的入网出网同时计费.

        由于网桥的特点,实际上不论客户端是上传还是下载,在vps的视角来看,实际上都是做了出网(下载不必说,上传时目的地不是vps,而是由vps中继到目标地址,也是出网).

        因此博主的方法对于只计算出网的vps是合适的.而对于双向计费的vps来说,就必须要虚拟的内部网卡,然后将特定端口流量转发至该ip,然后再统计该网卡的出网流量.

        回复
        2017-04-6
  2. Bruce #2

    简单实用,博主能分享下小工具吗?

    回复
    2015-05-23
  3. chaos #3

    求工具分享,感谢

    回复
    2015-06-19