Coder Social home page Coder Social logo

sssm.sh's Introduction

shadowsocks server with v2ray-plugin multi-user manager script

使用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+)

脚本使用的服务端

shadowsocks + v2ray-plugin 支持的客户端

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重启即可生效。

脚本解析

脚本配置文件 (config)

  • 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

用户配置文件 (user)

每一行是一名用户的配置,共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为你喜欢的目录即可。

没有风险。

web服务和SS复用443端口

手动编辑config文件,修改nginx_port=443即可。

⚠️ 可能导致您服务器IP的443端口被墙,从而无法提供web服务。

使用域名证书 而不是IP证书

手动编辑config文件,修改certificate_ip=证书域名即可。

⚠️ 百分之一百导致您服务器IP/端口被墙。

使用aes-256-gcm和none以外的加密方法

手动编辑config文件,修改ss_method=加密方法即可。
点此处查看shadowsocks-rust支持的加密方法

⚠️ 没有风险 但也没有必要

sssm.sh's People

Contributors

yeyingorg avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.