Skip to content

chnnic/VOLSS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 

Repository files navigation

volss - Shadowsocks-Rust 一键管理脚本

版本: V1.4.5 · 快捷命令: volss · 支持 Debian / Ubuntu / Alpine

一个适用于 NAT 机/VPS 的 Shadowsocks-Rust 交互式安装与管理脚本,支持多用户管理、流量统计、ACL 黑名单规则集、时间同步等功能。自动识别系统,同一份脚本可在 Debian/Ubuntu(systemd)和 Alpine(OpenRC)上运行。


功能概览

  • 一键安装/卸载/更新最新版 Shadowsocks-Rust
  • 自动识别系统(Debian/Ubuntu/Alpine),自动适配服务管理方式
  • 交互式选择加密方式、端口分配策略、用户数量
  • 顺序端口或随机端口分配,自动跳过已占用端口
  • 多用户管理:暂停、恢复、删除、重新生成
  • 默认开启 TCP + UDP 双协议出站
  • 基于 iptables 的每用户流量统计(GB),持久化保存,重启不丢失
  • ACL 黑名单:手动添加域名 + 规则集一键安装(广告/色情/赌博/BT/恶意软件等)
  • 手动域名与规则集完全分离管理,互不干扰
  • 时间同步:首页显示与标准时间差,一键校准
  • 服务管理:启动、停止、重启、日志
  • 快捷命令 volss 随时呼出管理菜单

系统要求

项目 要求
系统 Debian / Ubuntu / Alpine(不支持 OpenWrt / ImmortalWrt
权限 root
架构 x86_64 / aarch64(Alpine 额外支持 armv7)
依赖 自动安装(curl、wget、openssl、python3、iptables、xz 等)

OpenWrt / ImmortalWrt 用户:请直接使用 opkg install shadowsocks-rust-ssserver 安装,配合 procd 管理服务,不要使用本脚本。

Alpine 用户:脚本会自动检测并安装 bash(Alpine 默认不带 bash),无需手动处理。


快速开始

1. 下载并运行脚本

wget -O volss.sh https://raw.githubusercontent.com/chnnic/VOLSS/refs/heads/main/volss.sh && chmod +x volss.sh && bash volss.sh

Alpine 系统如果还没有 bash,可以用 sh 启动(脚本会自动安装 bash 并重新执行):

wget -O volss.sh https://raw.githubusercontent.com/chnnic/VOLSS/refs/heads/main/volss.sh
chmod +x volss.sh
sh volss.sh

首次运行进入主菜单,选择 1) 安装 Shadowsocks-Rust 开始安装。

2. 安装完成后使用快捷命令

volss

安装流程说明

第一步:选择加密方式

1) 2022-blake3-aes-128-gcm        (推荐)
2) 2022-blake3-aes-256-gcm        (强加密)
3) 2022-blake3-chacha20-poly1305   (ARM推荐)
4) aes-256-gcm                    (传统)
5) chacha20-ietf-poly1305         (传统)

推荐使用 2022-blake3-aes-128-gcm,性能与安全性均衡。

第二步:填写服务器信息

输入服务器域名或 IP,留空则自动检测。支持 DDNS 域名(如 your-domain.example.com)。

第三步:端口分配

1) 顺序端口 —— 从指定起始端口开始,自动跳过已占用端口
2) 随机端口 —— 在指定范围内随机挑选可用端口

第四步:配置 ACL 黑名单(可选)

输入需要屏蔽的域名,每行一个,空行结束。安装完成后也可随时通过菜单增删,或安装规则集。


菜单功能

  =================================================
    Shadowsocks-Rust 管理脚本    V1.4.5    快捷命令: volss
  =================================================
    安装: ● 已安装        服务: ● 运行中
    时间: 已同步 (±1s)
  -------------------------------------------------
    -- 安装管理 --
      1)  安装 Shadowsocks-Rust
      2)  卸载 Shadowsocks-Rust
      3)  更新脚本
    -- 用户管理 --
      4)  查看用户列表
      5)  查看所有 SS 链接
      6)  暂停某个用户
      7)  恢复某个用户
      8)  删除某个用户
      9)  重新生成所有用户
    -- 流量统计 --
     10)  查看流量统计
     11)  重置流量统计
    -- ACL 黑名单 --
     12)  手动添加屏蔽域名
     13)  手动删除屏蔽域名
     14)  查看黑名单列表
     15)  规则集管理(广告/色情/赌博/BT等)
    -- 服务管理 --
     16)  查看服务状态
     17)  启动服务
     18)  停止服务
     19)  重启服务
     20)  查看实时日志
     21)  时间同步
  -------------------------------------------------
     0)  退出
  =================================================

功能详解

用户管理

功能 说明
查看用户列表 显示所有用户的端口、加密方式、状态(正常/暂停)
查看 SS 链接 输出所有 ss:// 格式链接,可直接导入客户端
暂停用户 将指定用户从运行配置中移除,不删除数据
恢复用户 重新将暂停的用户加入运行配置
删除用户 永久删除用户配置、链接及对应 iptables 规则
重新生成所有用户 保留原有端口,仅重新生成所有密码(旧链接失效)

更新脚本

选择菜单选项 3) 更新脚本,会从 GitHub 拉取最新版本,对比版本号后询问确认,更新前自动备份当前版本为 .bak,更新时自动迁移修复旧版配置(ACL 格式、服务文件、UDP 模式等),完成后自动重启进入新版菜单。

流量统计

基于 iptables 对每个端口单独计数,统计上行(用户下载)和下行(用户上传)。流量数据持久化保存至 traffic.json,采用「读取增量 → 内核归零」机制确保统计准确,重启不丢失,直到手动重置才清零,并显示最后重置时间。

注意:统计数值为单向流量。 由于代理服务器每个字节都要经过一进一出,VPS 实际消耗的带宽约为统计数值的 2 倍

ACL 黑名单

通过 Shadowsocks-Rust 的 ACL 功能屏蔽指定域名。手动域名存于 manual.list,规则集存于 rulesets/,两者完全分离,互不干扰。||domain.com 格式可匹配该域名及所有子域名。

ACL 拦截依赖客户端把域名传给服务端。 Clash 默认本地解析 DNS(传 IP),会导致 ACL 失效,需在客户端开启 fake-ipredir-host 模式。

规则集管理(选项 15)

可按需选择安装以下规则集,每个独立存储管理:

规则集 说明
ads 广告拦截
adult 色情网站
gambling 赌博网站
malware 恶意软件/钓鱼
scam 诈骗欺诈
tracking 追踪统计
crypto 挖矿劫持
dating 交友网站
bt BT/种子下载
finance 金融理财

支持单个安装、一键全装、卸载、更新、自定义 URL、查看统计。下载时自动尝试多个镜像。规则集更新时自动保留手动域名。

时间同步(选项 21)

首页状态行实时显示本地时间与标准时间的差值:

  • 绿色「已同步 (±1s)」:误差 ≤ 2 秒
  • 黄色「本地快/慢 Ns」:误差 ≤ 10 秒
  • 红色「本地快/慢 Ns」:误差 > 10 秒

选项 21 可一键校准系统时间,Debian/Ubuntu 使用 chrony/systemd-timesyncd,Alpine 使用 chrony/busybox ntpd。


SS 链接格式

ss://base64(method:password)@host:port#用户N

兼容客户端:

平台 推荐客户端
Windows v2rayN、Clash Verge
macOS Clash Verge、Hiddify
Linux NekoRay、Clash Meta
Android v2rayNG、Hiddify、Sing-box
iOS Shadowrocket、Sing-box

文件说明

路径 说明
ssserver 主程序(Debian: /usr/local/bin,Alpine: /usr/bin)
/usr/local/bin/volss 快捷命令入口
/usr/local/bin/volss.sh 脚本主体(固定安装路径)
/etc/shadowsocks-rust/config.json 完整配置(含 disabled 标记)
/etc/shadowsocks-rust/runtime.json 运行时配置(仅含启用用户)
/etc/shadowsocks-rust/ss_links.txt 所有用户 SS 链接
/etc/shadowsocks-rust/traffic.json 流量历史持久化数据
/etc/shadowsocks-rust/blocklist.acl ACL 黑名单主文件(自动生成)
/etc/shadowsocks-rust/manual.list 手动添加的屏蔽域名
/etc/shadowsocks-rust/rulesets/ 规则集存储目录
服务文件 Debian: systemd .service,Alpine: OpenRC init.d

常见问题

Q: 支持哪些系统?

Debian、Ubuntu、Alpine。脚本启动时自动识别系统并适配服务管理方式(systemd / OpenRC)、包管理(apt / apk)、二进制版本(gnu / musl)。不支持 OpenWrt/ImmortalWrt。

Q: Alpine 提示没有 bash?

脚本会自动检测并通过 apk 安装 bash,然后用 bash 重新执行,无需手动处理。用 sh volss.sh 启动即可。

Q: ACL 添加了但无法拦截?

ACL 拦截依赖客户端把域名(而非解析后的 IP)传给服务端。Clash 默认本地解析 DNS,需在客户端开启 fake-ipredir-host 模式。可通过菜单选项 20 查看日志,出现 blocked by ACL rules 即表示拦截生效。

Q: 安装规则集会影响代理速度吗?

ACL 匹配只在新连接建立时执行,不影响已建立连接的传输速度。大规则集每次新连接会增加数毫秒匹配延迟,对普通使用影响可忽略。如对延迟敏感,建议只安装最必要的规则集。

Q: 支持 UDP 吗?

支持。从 V1.4.2 起默认开启 TCP + UDP 双协议(mode: tcp_and_udp)。旧版安装的用户运行一次 volss 即会自动补全 UDP 配置。可用 ss -ulnp | grep 端口 验证 UDP 是否监听。

Q: 菜单显示"未运行"但连接正常?

部分 LXC 容器宿主机会定期发送 SIGTERM 信号。脚本使用多重检测(pgrep + 服务状态),显示更准确。

Q: 重启服务器后流量数据会丢失吗?

不会。流量数据持久化保存,重启后累计显示,只有手动重置才会清零。

Q: 重新生成用户会换端口吗?

不会。从 V1.4.4 起,重新生成只更换密码,保留原有端口。


版本历史

版本 说明
V1.4.5 Alpine 兼容性修复:bash 自举、date 解析、iptables 持久化、下载镜像
V1.4.4 脚本健壮性优化:base64 兼容、重新生成保留端口、IP 获取多源、自检逻辑
V1.4.3 启动自检自动开启 UDP 模式
V1.4.2 默认开启 TCP+UDP 双协议出站
V1.4.1 更新时强制同步 runtime.json 的 ACL 字段
V1.4.0 整合 Alpine 支持,自动识别系统;新增时间同步功能
V1.3.6 流量统计逻辑重写(置顶规则 + 增量归零),修复统计虚高
V1.3.5 删除错误的自检迁移逻辑,规则集不再混入手动域名
V1.3.4 查看黑名单时规则集只显示统计不展开
V1.3.3 修复重置流量顺序问题
V1.3.2 规则集下载支持多镜像自动切换
V1.3.1 手动域名改用独立 manual.list 文件,彻底分离
V1.3.0 批量删除兼容性修复(数组替代 nl,grep 替代 sed)
V1.2.x 规则集管理、菜单整理、ACL 格式修复
V1.1.x 流量持久化、快捷命令修复、ACL 顶层配置、格式升级
V1.0.x 初始版本到基础功能完善

License

MIT

About

一个适用于 NAT 机/VPS 的 Shadowsocks-Rust 交互式安装与管理脚本,支持多用户管理、流量统计、ACL 黑名单规则集等功能。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages