使用v2ray-plugin插件的Shadowsocks服务器的多用户管理脚本
(s)hadow(s)ocks (s)erver with v2ray-plugin multi-user (m)anager script
这个脚本包含了我4年对shadowsocks+v2ray-plugin+nginx的全部理解
- Debian/Ubuntu x86_64
- 以root用户执行
- nginx (使用 apt install nginx 或者 lnmp.org 脚本安装的)
- IPv4证书 (可在 ZeroSSL 免费申请)
- 简洁易懂快捷方便的多用户管理(添加删除用户)
- 针对单个用户的流量监控与限制(达量自动断网)
- 自动生成SS以及nginx的配置文件
- 自动生成Windows/macOS/Android/iOS四端的用户配置SS链接
- 自动生成客户端下载链接
- 初次执行劝退99.99%潜在用户(因为需要IP证书)
- 不支持巨量用户的情况(1000+)
Windows
- shadowsocks-windows + v2ray-pluginmacOS
- ShadowsocksX-NG + v2ray-pluginAndroid
- shadowsocks-android + v2ray-plugin-androidiOS
- ShadowrocketOpenWrt
- openwrt-shadowsocks + luci-app-shadowsocks + v2ray-plugin
- 不支持UDP (因为SIP003插件不支持处理UDP)
首先准备好一个IP证书,没有的可以去ZeroSSL免费申请
如果机器没有安装nginx则先使用apt安装一下
apt install nginx
然后创建一个/home/sssm
目录,把sssm.sh
放进去,然后使用root
用户/或者sudo
运行。
mkdir /home/sssm && wget --no-check-certificate -q -O /home/sssm/sssm.sh "https://github.com/yeyingorg/sssm.sh/raw/main/sssm.sh" && chmod +x /home/sssm/sssm.sh && bash /home/sssm/sssm.sh
启动脚本,按照指示完成初次运行配置
在主菜单先选择6
下载shadowsocks-windows + v2ray-plugin
然后在主菜单选择1
初次生成配置文件并启动
接着在主菜单选择5
进入用户面板,按a
根据提示新增一名用户
在用户面板中按1
选择新增的用户,查看该用户的专属SS配置链接
在主界面选择4可以使用下载客户端功能,脚本会帮助您快速打包好适用的客户端并且给出下载链接
以Windows客户端为例,脚本会下载
shadowsocks-windows
然后解压缩,接着下载v2ray-plugin
,解压缩得到v2ray-plugin_windows_amd64.exe
,脚本会把它改名为v2ray-plugin.exe
,然后客户端和插件一起重新打包,生成windows.zip
ZeroSSL的免费IP证书有效期为三个月,续期获得新证书后,使用WinSCP上传覆盖同名文件,然后在脚本主菜单选择1
,重启nginx后即可生效。
脚本配置文件config
是可以自己手动编辑的,里面的所有设置都可以修改,修改后在脚本主菜单选择1
重启即可生效。
nginx_conf_file
- nginx配置文件nginx.conf的路径ip_address
- 本机的IPv4地址certificate_ip
- 证书的IPv4地址nginx_port
- nginx监听的端口ss_server_port
- ss监听的本地端口(仅监听127.0.0.1)ss_method
- ss加密方式ss_password
- ss密码ss_dns
- ss使用的DNS地址ss_ipv6_first
- ss代理流量是否优先走IPv6
每一行是一名用户的配置,共3列,以空格分隔
第一列是用户端口
第二列是用户名
第三列是户月流量限制,GB为单位
.
├── ca_bundle.crt # 用户上传的证书文件
├── certificate.crt # 用户上传的证书文件
├── config # 脚本配置文件
├── config.json # 脚本生成的ss配置文件
├── dhparam.pem # 脚本生成的密钥交换协议文件
├── fullchain.crt # 脚本生成的证书文件
├── private.key # 用户上传的证书文件
├── shadowsocks_rust_latest_version # 最新版ss-rust版本号
├── sslocal # shadowsocks-rust
├── ssmanager # shadowsocks-rust
├── ssserver # shadowsocks-rust
├── ssservice # shadowsocks-rust
├── sssm_nginx_vhost.conf # 脚本生成的nginx vhost配置文件
├── sssm.sh # 脚本
├── ssurl # shadowsocks-rust
├── user # 用户配置文件
├── user_traffic # 用户流量文件夹
│ ├── 60001 # 用户60001已使用流量
│ ├── 60001_last_month # 用户60001上个月使用流量
│ ├── 60002 # 用户60002已使用流量
│ └── 60002_last_month # 用户60002上个月使用流量
├── v2ray-plugin # v2ray-plugin
├── v2ray_plugin_latest_version # 最新版v2ray-plugin版本号
└── wwwroot # 网站的根目录
├── index.html # 一个空白的首页文件
└── tmp # 临时文件目录
├── android.apk # 脚本下载的Android客户端
├── android_plugin.apk # 脚本下载的Android客户端插件
├── macos.dmg # 脚本下载的macOS客户端
└── windows.zip # 脚本下载的Windows客户端
这里是一些脚本正常执行使用无法触及的东西
这部分所讲的内容不受正式支持,如遇到报错或有疑问,所发的issue、私信将不予回复。
⚠️ 希望您做事之前清楚明白知道自己在干什么 使用不建议的配置玩法会导致严重后果,包括但不限于自己的机器IP被秒墙。
手动编辑脚本sssm.sh
,修改开头的dir=/home/sssm
为你喜欢的目录即可。
没有风险。
手动编辑config
文件,修改nginx_port=443
即可。
⚠️ 可能导致您服务器IP的443端口被墙,从而无法提供web服务。
手动编辑config
文件,修改certificate_ip=证书域名
即可。
⚠️ 百分之一百导致您服务器IP/端口被墙。
手动编辑config
文件,修改ss_method=加密方法
即可。
点此处查看shadowsocks-rust
支持的加密方法
⚠️ 没有风险 但也没有必要