centos shadowsocks 多用户流量管理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tuzhenlei/article/details/79005926

系统:centos 6+
工具地址:https://github.com/edboffical/bsp
参考文章:http://blog.csdn.net/eddieby/article/details/77198522

查了很多资料,大多数是Debian 7+,Ubuntu 12+的系统进行配置,centos系统确实很多坑,但无奈当初配置的时候已经是centos,所以记录下自己配置的过程,和解决的坑。

bsp作者使用的是shadowsocks-python,而我使用的是shadowsocks-go。配置起来会有很多不一样的地方。如果是使用shadowsocks-python的,直接看作者wiki文档即可。

引用wiki:

使用bsp之前,请先保证你的ss多用户配置可以生效(配置文件不起作用的话用本工具也没用),配置文件大概是这样
{
“fast_open”: false,
“local_address”: “127.0.0.1”,
“local_port”: 1080,
“method”: “aes-256-cfb”,
“port_password”: {
“1214”: “123456”,
“1314”: “123456”
},
“server”: “0.0.0.0”,
“timeout”: 300
}
如果可以,那么安装bsp吧

1、查看系统是否已经安装git

git --version

若出现git: 未找到命令…

则运行

yum install git

安装成功再运行 git –version,会出现版本号

2、安装bsp

执行:

git clone https://github.com/edboffical/bsp.git
cd bsp
chmod 775 install
./install

运行 bsp –version,显示版本号,则安装成功。

3、配置端口流量限制

以增加8989端口上网账号密码123456为例 那么命令就是

bsp -p 8989 -P 123456 -j

不出意外,会报错
IOError: [Errno 2] No such file or directory: u’/etc/shadowsocks-python/config.json’

这是因为shadowsocks-go的配置文件目录不对

不用管他,再运行 bsp –start 进行后台监听,为了生成一个json配置文件

4、配置文件

bsp配置文件路径:/etc/byte/ss_byte.json。
这是wiki文档中的说明,但是实际上,进入到byte目录下,其实是byte_ss.bsp(坑啊,不看不知道)

使用vi进入编辑模式 vi /etc/byte/byte_ss.json

{
"ssconf_path":"/etc/shadowsocks-python/config.json", ----shadowsocks多用户配置文件路径
"ress_cmd":"/etc/init.d/shadowsocks-python restart", ----shadowsocks重启命令
"update_time":"180",                                 ----bsp流量使用情况更新时间,单位s
"port_limit": {                                      ----端口limit表
    "8989":"100"                                                                  
}

}

修改ssconf_path的值为: /etc/shadowsocks.json
修改ress_cmd的值为:/etc/init.d/shadowsocks restart

这里说明下:bsp的机制是,流量用完了,配置文件会自动清除端口。
如果重启ss的命令不正确,会造成端口还能继续用(必须重新启动ss服务才可以达到流量超额后停用端口,就是我们限制账户使用流量的目的)

然后按照wiki中的说明,启动就行了
bsp –start

5、注意事项

(以下大部分内容引用自wiki)
但是千万要注意,对于一个端口的流量控制操作,必须要完成三个添加:
1、添加了端口上网账号
2、添加了端口限额
3、添加了端口监听规则
缺一不可!所以并不推荐单参数操作,推荐使用如下命令增加、删除

增加8989端口上网账户密码为123456限额100MB
bsp -p 8989 -P 123456 -s 100 -a -A -j
删除命令
bsp -p 8989 -d -D -R

由于我shadowsocks.json是自己编写的,所以知道哪些端口有,我就直接编辑byte_ss.json,手动添加限制流量端口号的参数
{
“ssconf_path”:”/etc/shadowsocks.json”,
“ress_cmd”:”/etc/init.d/shadowsocks restart”,
“update_time”:”180”,
“port_limit”: {
“8390”:”100000”,
“8391”:”200000”,
“8392”:”200000”,
“8393”:”200000”,
“8394”:”200000”,
“8385”:”200000”
}
}

另外要注意一点,因为服务器重启之后iptables所有的规则都会被清除,这会导致bsp无法正常运行
所以服务器重启后一定要用如下命令从配置文件的limit表里遍历端口并增加规则!
所以服务器重启后一定要用如下命令从配置文件的limit表里遍历端口并增加规则!
所以服务器重启后一定要用如下命令从配置文件的limit表里遍历端口并增加规则!

bsp -r
添加完之后就可以启动bsp后台运行监听了,用如下命令:

注意:一定要运行后台监听后,流量用完才会自动删除对应账号和规则!!

bsp –start
如果你没有增加任何端口限制,即配置文件里port_limit表数据为空的时候,你启动bsp后台运行监听,会提示:without any limit bsp stoped,并退出。因为没有任何端口需要监控,当一个端口使用流量达到限额时,bsp会自动删除端口上网账号,端口监听规则,和配置文件的端口限额配置,同样,当所有的端口都删完后,bsp会自动结束后台监听运行。

如果每个月初要清空各个端口的流量清空,重启服务器再遍历limit表即可,可以写一个定时任务,也可以手动操作

猜你喜欢

转载自blog.csdn.net/tuzhenlei/article/details/79005926