2016年6月

Shadowsocks流量管理脚本

ss-bash

Shadowsocks流量管理脚本

  • 目前只支持python版Shadowsocks
  • 目前只支持统计ipv4流量

系统要求

  • shadowsocks-python
  • Linux(推荐Debian 7,其它系统未测试)

工作原理

不同的用户分配不同端口,使用iptables规则获取各端口的流量,脚本循环运行,在固定时间间隔根据iptables结果统计流量使用情况,并在流量超过限制时,添加对应端口的iptables reject规则以禁用端口。

使用说明

首次使用

下载软件

git clone https://github.com/hellofwy/ss-bash

或者:

wget https://github.com/hellofwy/ss-bash/archive/v1.0-beta.3.tar.gz

首次运行时,先新建用户

例如新用户端口为8388,密码为passwd,流量限制为10GB,执行:

sudo ss-bash/ssadmin.sh add 8388 passwd 10G

启动ssserver

sudo ss-bash/ssadmin.sh start

其它命令请查看帮助,执行命令:

sudo ss-bash/ssadmin.sh help

或者点击链接:https://github.com/hellofwy/ss-bash/blob/master/sshelp

自定义ssserver的配置

打开文件ssmlt.template,添加相关选项。

请注意每个选项后必需有逗号(',')

默认选项为:

"server": "0.0.0.0",
"timeout": 60,
"method": "aes-256-cfb",

比如添加fastopen和worker选项后:

"server": "0.0.0.0",
"timeout": 60,
"method": "aes-256-cfb",
"fast_open": true,
"workers": 5,

修改之后,如果ssserver正在运行,请执行下面命令,重新加载文件并启动:

sudo ss-bash/ssadmin.sh soft_restart

修改流量统计间隔

默认的流量采样间隔为5分钟

流量间隔可根据实际需求调整,但最好不要太小,比如小于10秒

打开文件sslib.sh,修改INTERVEL的值,单位为秒。比如设置流量间隔为10分钟:

INTERVEL=600

修改ssserver文件位置

如果shadowsocks不是使用apt-get或者pip安装,无法自动找到ssserver文件时,请手动指定程序的具体位置。

打开文件sslib.sh,修改SSSERVER的值,比如ssserver的路径为/usr/local/bin/ssserver时,修改为

SSSERVER=/usr/local/bin/ssserver

文件夹中的相关文件

  • ssadmin.sh - 管理程序,所有命令通过该程序执行
  • sscounter.sh - 流量统计程序。由ssadmin.sh自动调用执行,注意:不要手动运行该程序
  • sslib.sh - 包含一些参数配置和流量统计函数。由ssadmin.sh自动调用执行,注意:不要手动运行该程序
  • ssmlt.template - ssserver的配置文件

程序运行后,会产生以下文件:

  • ssmlt.json - 根据用户列表和ssmlt.template生成的ssserver实际使用的配置文件
  • ssusers - 用户列表,包括端口、密码、流量限制参数。ssadmin.sh showpw 命令,显示该文件内容。
  • sstraffic - 用户流量使用情况,包括流量限制,已用流量,剩余流量等。ssadmin.sh show 命令,显示该文件内容。
  • traffic.log - 用户流量记录,供程序内部使用。
  • 其它文件 - .tmp、.lock、.pid等文件、文件夹tmp及其中文件为程序内部使用文件,请不要手动删除。

CentOS一键安装shadowsocks脚本

Shadowsocks是一个基于python的轻量级socks代理软件,可以在任何系统简单的实现访问被屏蔽的网站。网友也常称为科学上网,简称ss,在此分享与记录CentOS一键安装shadowsocks脚本。

一、使用root用户登录,运行以下命令:

1
2
3
wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh
chmod +x shadowsocks.sh
./shadowsocks.sh 2>&1 | tee shadowsocks.log

二、安装完成后,脚本提示如下:

1
2
3
4
5
6
7
8
9
10
Congratulations, shadowsocks install completed!
Your Server IP:your_server_ip
Your Server Port:8989
Your Password:your_password
Your Local IP:127.0.0.1
Your Local Port:1080
Your Encryption Method:aes-256-cfb
 
Welcome to visit:http://teddysun.com/342.html
Enjoy it!

三、卸载方法

1
./shadowsocks.sh uninstall

四、配置文件

配置文件路径为:/etc/shadowsocks.json

单用户配置:

1
2
3
4
5
6
7
8
9
10
{
    "server":"your_server_ip",
    "server_port":8989,
    "local_address":"127.0.0.1",
    "local_port":1080,
    "password":"yourpassword",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open": false
}

多用户配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
    "server":"your_server_ip",
    "local_address": "127.0.0.1",
    "local_port":1080,
    "port_password":{
         "8989":"password0",
         "9001":"password1",
         "9002":"password2",
         "9003":"password3",
         "9004":"password4"
    },
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open": false
}

五、相关使用命令

1
2
3
4
启动:/etc/init.d/shadowsocks start
停止:/etc/init.d/shadowsocks stop
重启:/etc/init.d/shadowsocks restart
状态:/etc/init.d/shadowsocks status

其它说明:默认配置服务器端口:8989客户端端口:1080,密码:自己设定(如不设定,默认为teddysun.com),多用户配置后需要重启shadowsocks服务。Windows客户端使用和下载请查看:Windows使用Shadowsocks科学上网。