一、管理端SS_MANAGE
项目简介
SS_MANAGE 是基于springboot开发的 SS 多节点多用户、限时、限流管理服务端 支持ss-python , 节点服务需要部署 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 节点服务
- 安装java环境 jdk 1.8
- 安装mysql5.6+,创建数据库 ssserver_db,导入表数据
- 修改application.yml的数据库用户名密码, 项目打包为jar 上传到服务器
- -Dspring.profiles.active=prod 指定为生产环境 java -jar -Dspring.profiles.active=prod /software/server/ssserver_manager-1.0-SNAPSHOT.jar
- 日志位于 jar包所在目录的logs目录下
- 管理服务部署成功后,需要部署节点服务
使用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 &
提供我使用的一个自动化脚本
- sh restart.sh update 自动pull代码编译,并重启服务
- 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用户限时、限流管理系统