ss-panel-v3是一套功能齐全的shadowsocks用户面板程序,安装这款程序可以实现用户注册、用户管理、流量限制、签到、添加节点、充值购买、充值返利等诸多功能。搭建完毕后完全可以使用这款程序在线销售shadowsocks。
ss-panel-v3-mod真的是一款炒鸡棒的ss面板程序!
本次搭建的环境:
1.CentOS 7/Debian 8
2.PHP 7.2
3.MariaDB
4.Apache 2 (httpd)
5.ss-panel-v3-mod Github 已失效,备用
安装教程
注意: 大概在 2019-01-13 左右发生的事情.
赵大的魔改版(new_master分支) /esdeathlove/ss-panel-v3-mod
赵大的魔改版后端 /esdeathlove/shadowsocks
/glzjin/shadowsocks
以上库均已删库.
ss-panel-v3-mod 再次修改版
github.com/Anankke/ss-panel-v3-mod_Uim
CentOS 7初始化,系统运行环境
yum install git python-devel libffi-devel openssl-devel python-setuptools epel-release screen ncurses-devel build-essential gcc wget m2crypto net-tools -y yum update -y yum install -y htop nload vim python-pip systemctl stop firewalld
开启BBR,重要!
CENTOS 7 开启 TCP-BBR 的方式
Debian 8初始化,系统运行环境
apt-get update apt install vim htop screen python-setuptools python-dev python-pip git libxml2-dev libxslt1-dev python-dev zlib1g-dev libevent-dev pip install --upgrade setuptools apt-get install supervisor /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
安装PHP 7.2
Apache 2 (httpd) 设置伪静态 url重写
<Directory "/ss-panel/public"> Options -Indexes +FollowSymLinks AllowOverride All Require all granted RewriteEngine on RewriteBase "/" RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [QSA,L] </Directory>
MariaDB
ERROR 1045 (28000): Access denied for user 'laravel'@'localhost' (using password: YES)
解决MYSQL新建用户后无法登录问题
安装ss-panel-v3-mod
首先打开ss-panel-v3-mod的官方Github:github.com/esdeathlove/ss-panel-v3-mod
将程序的zip压缩包下载到本地:
解压压缩包找到sql目录中的glzjin_all.sql
在MySQL中新建一个数据库,新建用户,分配权限.
并把glzjin_all.sql 导入进数据库.
新建用户并赋予权限命令:
数据库: sspanel
用户: sspaneluser
密码: 123456
insert into mysql.user(Host,User,Password) values('%','sspaneluser',password('123456')); grant all privileges on `sspanel`.* to 'sspaneluser'@'%' identified by '123456'; FLUSH PRIVILEGES;
回到Bash中,再来进行ss-panel-v3-mod的配置:
# 进入站点目录 cd /home/wwwroot/你站点的域名 # 安装依赖 php composer.phar install cp config/.config.php.example config/.config.php # 编辑.config.php 文件 vim config/.config.php # 由于配置太多 这里只说重点 $System_Config['key'] = ''; //修改此key为随机字符串确保网站安全 $System_Config['appName'] = ''; //站点名称 $System_Config['baseUrl'] = 'https://zhaojin97.cn'; // 站点地址 $System_Config['timeZone'] = 'PRC'; // RPC 天朝时间 UTC 格林时间 $System_Config['pwdMethod'] = 'sha256'; // 密码加密 可选 md5,sha256 $System_Config['salt'] = ''; // 密码加密用,从旧版升级请留空 $System_Config['authDriver'] = 'cookie'; // 登录验证存储方式,推荐使用Redis 可选: cookie,redis $System_Config['mailDriver'] = 'mailgun'; // 邮件 可选 mailgun or smtp 需要支持qq邮箱的选 smtp $System_Config['checkinMin'] = '100'; // 签到最少流量 单位MB $System_Config['checkinMax'] = '500'; // 签到最多流量 $System_Config['defaultTraffic'] = '100'; // 用户初始流量 单位GB $System_Config['inviteNum'] = '0'; // 注册后获得的邀请码数量 # database 数据库配置 $System_Config['db_driver'] = 'mysql'; $System_Config['db_host'] = 'localhost'; // 数据库地址 $System_Config['db_database'] = ''; // 数据库名称 sspanel $System_Config['db_username'] = ''; // 数据库用户 sspanel $System_Config['db_password'] = ''; // sspanel用户的密码 $System_Config['db_charset'] = 'utf8'; $System_Config['db_collation'] = 'utf8_general_ci'; $System_Config['db_prefix'] = ''; # redis $System_Config['redis_scheme'] = 'tcp'; // 登录验证存储方式选了 redis 的话需要配置 $System_Config['redis_host'] = '127.0.0.1'; $System_Config['redis_port'] = '6379'; $System_Config['redis_database'] = '0'; $System_Config['redis_password']=""; # smtp $System_Config['smtp_host'] = ''; // 例如 smtp.qq.com $System_Config['smtp_username'] = ''; $System_Config['smtp_port'] = '25'; $System_Config['smtp_name'] = ''; $System_Config['smtp_sender'] = ''; $System_Config['smtp_passsword'] = ''; $System_Config['smtp_ssl'] = 'false'; #功能开关 需要用到的才开 建议先别动 $System_Config['enable_wecenter']='false'; $System_Config['enable_radius']='false'; // 配置了 radius 的话就开 $System_Config['enable_cloudxns']='false'; $System_Config['enable_duoshuo']='false'; $System_Config['enable_rss']='true'; $System_Config['enable_paymentwall']='false'; #Radius数据库设置 $System_Config['radius_db_host']=''; // 跟 上面 database 数据库配置差不多 换成radius即可 $System_Config['radius_db_database']=''; $System_Config['radius_db_user']=''; $System_Config['radius_db_password']=''; #Radius连接密钥 $System_Config['radius_secret']=''; // 这个重要 必须设 #端口池 $System_Config['min_port']='10000'; // SSR 分配端口号范围 $System_Config['max_port']='65535'; #两种方式相对于ss端口的偏移 $System_Config['pacp_offset']='-20000'; // PAC+ 和 PAC++ 用到 $System_Config['pacpp_offset']='-20000'; #测速周期/h $System_Config['Speedtest_duration']='6'; // 对应后端 SSR 的 userapiconfig.py 里的 SPEEDTEST #随机分组,注册时随机分配到的分组,多个分组请用英文半角逗号分隔。 $System_Config['ramdom_group']='0'; // 组别用于区分用户组 对应组只能访问对应组和0组的服务器 明白后再修改 #充值返利百分比 $System_Config['code_payback']='20'; // 用户充值后 给邀请他注册的人返利多少% #注册时的流量重置日以及需要重置的流量,0不重置 $System_Config['reg_auto_reset_day']='0'; $System_Config['reg_auto_reset_bandwidth']='100'; // 单位G
修改数据库配置信息.
配置好之后,给ss-panel-v3-mod创建一个管理员账号:
创建完成后来同步一下用户:
php xcat syncusers
最后来设置几个定时任务确保ss-panel-v3-mod的长期稳定运行。
crontab -e 30 22 * * * php /home/wwwroot/你的站点域名/xcat sendDiaryMail */1 * * * * php /home/wwwroot/你的站点域名/xcat synclogin */1 * * * * php /home/wwwroot/你的站点域名/xcat syncvpn 0 0 * * * php -n /home/wwwroot/你的站点域名/xcat dailyjob */1 * * * * php /home/wwwroot/你的站点域名/xcat checkjob */1 * * * * php -n /home/wwwroot/你的站点域名/xcat syncnas
到这里,ss-panel-v3-mod的前端面板就安装完成了。但现在依旧不能正常使用,因为这只是一个前端WEB网站,我们还需要搭建后端服务和这个前端结合起来才能正常使用。
配置后端
cd ~
# 安装libsodium 加密库需要的
# libsodium是给SSR提供chacha20、salsa20、chacha20-ietf等高级加密所必须的扩展库,如果不用这几个加密方式,可以不安装。
wget https://github.com/jedisct1/libsodium/releases/download/1.0.10/libsodium-1.0.10.tar.gz
tar xf libsodium-1.0.10.tar.gz
cd libsodium-1.0.10
./configure
make
make install
# 修复关联
echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf
ldconfig
# 下载后端
git clone -b manyuser https://github.com/glzjin/shadowsocks.git
cd shadowsocks
pip install -r requirements.txt
# 设置程序的配置文件
cp apiconfig.py userapiconfig.py
cp config.json user-config.json
# 编辑userapiconfig.py
vim userapiconfig.py
# 来解释下里面各项配置的意思
# Config
#节点ID 对应前端节点列表的ID
NODE_ID = 1
#自动化测速,为0不测试,此处以小时为单位,要和 ss-panel 设置的小时数一致
SPEEDTEST = 6
#云安全,自动上报与下载封禁IP,1为开启,0为关闭
CLOUDSAFE = 1
#自动封禁SS密码和加密方式错误的 IP,1为开启,0为关闭
ANTISSATTACK = 0
#是否接受上级下发的命令,如果你要用这个命令,请参考我之前写的东西,公钥放在目录下的 ssshell.asc
AUTOEXEC = 1
#是否以多线程模式运行,关闭这个限速就会无效。请优先测试 1 ,开启试试,能运行没。
MULTI_THREAD = 0
#多端口单用户设置,看重大更新说明。
MU_SUFFIX = 'zhaoj.in'
#多端口单用户设置,看重大更新说明。
MU_REGEX = '%5m%id.%suffix'
#不明觉厉
SERVER_PUB_ADDR = '127.0.0.1' # mujson_mgr need this to generate ssr link
#此处不要修改
API_INTERFACE = 'glzjinmod' #mudbjson, sspanelv2, sspanelv3, sspanelv3ssr, muapiv2(not support)
#mudb,不要管
MUDB_FILE = 'mudb.json'
# Mysql 数据库连接信息
MYSQL_HOST = '127.0.0.1'
MYSQL_PORT = 3306
MYSQL_USER = 'ss'
MYSQL_PASS = 'ss'
MYSQL_DB = 'shadowsocks'
MYSQL_UPDATE_TIME = 60
# 是否启用SSL连接,0为关,1为开
MYSQL_SSL_ENABLE = 0
# 客户端证书目录,请看 https://github.com/glzjin/shadowsocks/wiki/Mysql-SSL%E9%85%8D%E7%BD%AE
MYSQL_SSL_CERT = '/root/shadowsocks/client-cert.pem'
MYSQL_SSL_KEY = '/root/shadowsocks/client-key.pem'
MYSQL_SSL_CA = '/root/shadowsocks/ca.pem'
# API,不用管
API_HOST = '127.0.0.1'
API_PORT = 80
API_PATH = '/mu/v2/'
API_TOKEN = 'abcdef'
API_UPDATE_TIME = 60
# Manager 不用管
MANAGE_PASS = 'ss233333333'
#if you want manage in other server you should set this value to global ip
MANAGE_BIND_IP = '127.0.0.1'
#make sure this port is idle
MANAGE_PORT = 23333
modwebapi改为:glzjinmod
节点ID改为3:
找到配置文件中的MySQL信息,正确填写我们之前创建的数据库信息:
python server.py 用于调错的 ./run.sh 无日志后台运行 ./logrun.sh 有日志后台运行 supervisord
现在我们登录ss-panel-v3-mod面板,点击左下角最后一个管理面板按钮,进入到管理界面。
点击节点管理,右下角+号添加一个新节点。
注意:添加节点的时候,节点名称务必要是这样的:“伯力 – Shadowsocks”(-号前后都有一个空格才行)
然后就是节点地址、加密方式、流量比例、节点状态、节点描述这些都是必填的,建议按我如图填写:
全部添加好后可以看到节点已经正常的在线了:
使用Supervisor守护进程启动ssr
执行流程:
1.安装supervisor
2.创建系统服务(在CentOS 7 测试)
3.修改supervisor 配置文件
4.创建ssr 后端守护任务
5.重新启动supervisord
6.查看ssr执行状态
easy_install supervisor mkdir -p /etc/supervisor/conf.d echo_supervisord_conf > /etc/supervisor/supervisord.conf FILE="/usr/lib/systemd/system/supervisord.service" echo "[Unit]" > $FILE echo "Description=supervisord - Supervisor process control system for UNIX" >> $FILE echo "Documentation=http://supervisord.org" >> $FILE echo "After=network.target" >> $FILE echo "" >> $FILE echo "[Service]" >> $FILE echo "Type=forking" >> $FILE echo "ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf" >> $FILE echo "ExecReload=/usr/bin/supervisorctl reload" >> $FILE echo "ExecStop=/usr/bin/supervisorctl shutdown" >> $FILE echo "User=root" >> $FILE echo "" >> $FILE echo "[Install]" >> $FILE echo "WantedBy=multi-user.target" >> $FILE echo "[include]" >> /etc/supervisor/supervisord.conf echo "files = /etc/supervisor/conf.d/*.conf" >> /etc/supervisor/supervisord.conf echo "[program:ssr]" > /etc/supervisor/conf.d/ss.conf echo "command=python /root/shadowsocks/server.py" >> /etc/supervisor/conf.d/ss.conf echo "autorestart=true" >> /etc/supervisor/conf.d/ss.conf echo "autostart=true" >> /etc/supervisor/conf.d/ss.conf echo "user=root" >> /etc/supervisor/conf.d/ss.conf systemctl restart supervisord systemctl enable supervisord supervisorctl status ssr
扩展阅读 - 对接方式
第一个:数据库对接
数据库对接需要修改的地方:
1.NODE_ID = 这里输入前端的节点UD 2.API_INTERFACE = 'glzjinmod' 务必选择glzjinmod 3.Mysql下面填写前端的MySQL数据库信息(务必注意,需要打开前端数据库的远程连接)
这样修改后就可以保存了。
第二个:WEBAPI对接
WEBAPI对接需要修改的地方:
1.NODE_ID = 这里输入前端的节点UD 2.API_INTERFACE = 'modwebapi' 务必选择modwebapi 3.WEBAPI_URL = 'https://ssr.tn' 这里需要把地址改成前端地址,务必区分http和https 4.WEBAPI_TOKEN=''这里需要和前端一致,具体在网站目录config/.config.php中查询,前端默认key是NimaQu
这样修改后就可以保存了。
现在很多教程隔一段时间就消失了不得不自己备份一个
详细安装ss-panel-v3魔改版前端+后端教程
ss-panel-v3-mod安装说明 (使用Supervisor守护进程启动ssr)
ss-panel-v3-mod_Uim魔改后端部署教程
你好,看了你的搭建教程,教程里的前端ui感觉挺好看的,你用的前端能给个git上的链接吗