不积跬步,无以至千里;不积小流,无以成江海。

SS-MANAGE多节点SS用户限时、限流管理系统

后端技术 康康 3055℃ 0评论

一、管理端SS_MANAGE

项目简介

blockchain

SS_MANAGE 是基于springboot开发的 SS 多节点多用户、限时、限流管理服务端 支持ss-python , 节点服务需要部署 SS_NODE(节点管理服务)

GIT地址:SS_MANAGE   SS_NODE

功能特色

  • 多用户管理、用户限时、限流
  • 多节点管理,节点服务状态监控,远程控制
  • shad0ws0cks 基本配置可视化

部署环境

该程序需要配合 SS_NODE(节点管理服务)使用,每个节点需要部署 SS_NODE 服务

  • jdk8
  • mysql 5.6+

配置说明

conf.properties

#分页,每页条数
ssserver.pageSize=10

#与节点通信的访问token,必须与节点服务配置的一致!
ssserver.accessToken=qazwsxoknplm

application.yml

打包运行时可通过 -Dspring.profiles.active=prod 指定不同环境 , -Dserver.port=8080 指定端口

#tomat端口
server:
  port: 8888

spring:
  profiles:  
    active: test ##指定运行环境为test


---
# 生产环境配置,根据需要更改
spring:
  profiles: prod
  datasource:
    river-class-name: com.mysql.jdbc.Driver
    username: root
    password: 199432
    url: jdbc:mysql://127.0.0.1:3306/ssserver_db?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=false


安装说明

shad0ws0cks(配置好多用户端口) -> 部署 SS_MANAGE 管理服务 -> 部署 SS_NODE 节点服务

  1. 安装java环境 jdk 1.8
  2. 安装mysql5.6+,创建数据库 ssserver_db,导入表数据
  3. 修改application.yml的数据库用户名密码, 项目打包为jar 上传到服务器
  4. -Dspring.profiles.active=prod 指定为生产环境 java -jar -Dspring.profiles.active=prod /software/server/ssserver_manager-1.0-SNAPSHOT.jar
  5. 日志位于 jar包所在目录的logs目录下
  6. 管理服务部署成功后,需要部署节点服务

使用git+maven安装

1.获取代码

git pull https://gitee.com/god007/ssserver_manager.git
cd ssserver_manager

2.根据需要修改配置文件

3.编译打包

mvn package

4.启动服务

java -jar -Dspring.profiles.active=prod /server/ssserver_manager/target/ssserver_manager-1.0-SNAPSHOT.jar > app.log  2>&1 &

提供我使用的一个自动化脚本

  1. sh restart.sh update 自动pull代码编译,并重启服务
  2. sh restart.sh 直接重启服务
#!/bin/bash

update=$1

#获取PID
ss_manage_pid=`ps -aux | grep sss | grep -v grep | awk '{print $2}'`

if [ "$update" =  "update" ];then
  #重新编译
  echo '更新代码,重新打包...'
  git pull
  mvn package
fi

#重启
if [ "$ss_manage_pid" != '' ];then
    echo '获取 PID = '$ss_manage_pid
    echo '正在停止服务 ... 确定'
    kill -9 $ss_manage_pid
 else
    echo '程序未启动!'
fi

echo "启动 ss_manage 服务 , 日志路径 logs/ssserver_manager.log ... 确定"
java -jar -Dspring.profiles.active=prod /software/server/ssserver_manager/target/ssserver_manager-1.0-SNAPSHOT.jar > app.log  2>&1 &

二、节点端SS_NODE

SS_NODE简介

SS_NODE 集成了ss 和 bsp插件 (提供流量统计,限时管理,启动时自动安装ss和bsp) ,SS_NODE 提供与 SS_MANAGE 通信接口, 监控ss服务、bsp服务状态,将状态实时同步到SS_MANAGE,同时提供 ss服务管理接口、bsp服务管理接口 便于SS_MANAGE对节点远程管理

部署环境

每个shadowsocks节点需要部署一个 server_node 服务

  • python-pip
  • jdk8
  • Tomcat8

config.properties配置说明(重要)

# sqlite jdbc driver 驱动,暂时无用
jdbc.driverName=org.sqlite.JDBC

# 和管理服务器通信的访问密钥,必须与管理服务器的conf.properties中的配置保持一致
ssserver.accessToken=qazwsxoknplm

# 监控ss服务状态和bsp服务状态的心跳时间,默认每60s向管理服务器同步
ssserver.heartSleepTime=60


# 管理服务器的服务地址,如果端口不是80也需要加上
ssserver.manager.host=http://xx.92kk.top

# shadowsocks 配置文件的路径,不用改,默认安装到此路径
ssserver.config.path=/etc/shadowsocks/config.json

# shadowsocks 服务重启命令,不用改
ssserver.restart.cmd=ssserver -c /etc/shadowsocks/config.json -d restart


# 节点服务配置 :
# node.id   每个节点的id不得重复 
# node.ip   当前节点服务器ip或域名 
# node.port 节点服务器的tomcat端口
# node.name 节点名称
node.id=100
node.ip=127.0.0.1
node.port=8080
node.name=Lag

安装说明

  • 1.部署管理服务器 ss_manage ,保证管理端正常提供服务
  • 2.节点服务器上安装python-pip
    • CentOS下安装:
     yum update
     yum install -y python-pip
     sudo python -m pip install --upgrade pip
    
    • Ubnutu下安装:
      apt-get update
      apt-get install python-pip
      sudo python -m pip install --upgrade pip
    
  • 3.部署节点服务 ss_node
    • 修改配置文件后,启动节点服务时(Tomcat使用root用户启动) 会自动安装ss 、bsp服务,并同步节点信息到管理服务器
    • 如果部署多个节点,确保node.id唯一性
    • 如果节点同步失败,请检查、修改配置,重新启动节点

使用

部署完成后,节点信息同步到管理端,请在管理端添加或同步用户,然后重启bsp服务即可。 如果bsp启动失败,检查bsp执行权限,检查是否创建了至少一个用户

 


三、运行效果预览

管理端SS-MANAGE启动

管理端SS-MANAGE界面

节点端SS-NODE启动

 

声明:本项目仅供个人学习交流,禁止其他用途,非法使用后果自负

 

转载请注明:左手代码右手诗 » SS-MANAGE多节点SS用户限时、限流管理系统

喜欢 (5)or分享 (0)
头像
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(5)个小伙伴在吐槽
  1. 头像
    老板,666,再也不怕小伙伴乱看小电影了
    钢镚儿2018-08-05 14:25 回复
    • 头像
      请问你安装成功了吗?ss_node怎么弄?怎么启动呢?我启动后除了tomcat什么都没有
      jwj2019-09-25 14:09 回复
      • 头像
        那个bsp也不怎么稳定,所以放弃这个了。。自动没法安装就手动吧,实际用的时候bsp经常挂,这个还是的自己写个程序
        康康2019-09-26 11:55 回复
        • 头像
          那请问你还知道什么比较好用的多用户管理系统吗?最好是后端节点可以自动同步到管理端的。谢谢
          jwj2019-09-26 14:55 回复
  2. 头像
    为什么我的ss_node不行,放在tomcatROOT下只是出现了ssserver is running 但是管理那边没有任何信息,shadowsocks和bsp也没有安装
    jwj2019-09-25 14:02 回复
隐藏