VPN技术 · 2023年11月10日 0

流量控制

流量控制

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及其内部文件为程序内部使用文件,请勿手动删除。