流量控制
ss流量管理
这是一个用于管理Shadowsocks流量的脚本。
- 当前仅支持python版本的Shadowsocks
- 目前仅支持统计IPv4流量
系统要求
- 需要shadowsocks-python
- 推荐使用Linux(建议Debian 7,其它系统未经测试)
工作原理
为每个用户分配不同的端口,利用iptables规则来获取各端口的流量。脚本会循环运行,并在固定时间间隔内根据iptables的结果统计流量使用情况。当流量超过设定限制时,会自动添加iptables拒绝规则以禁用相应端口。
使用说明
首次使用
软件下载
中文版:
git clone https://github.com/hellofwy/ss-bash或者:
wget https://github.com/hellofwy/ss-bash/archive/v1.0-beta.3.tar.gz英文版(感谢@Yaoshicn的贡献):
git clone https://github.com/hellofwy/ss-bash cd ss-bash git checkout en或者:
wget https://github.com/hellofwy/ss-bash/archive/v1.0-beta.3-en.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及其内部文件为程序内部使用文件,请勿手动删除。
