SS-Panel简介与准备

ss-panel-v3-mod是一款专为shadowsocks设计的web前端面板,再次感谢ss-panel-v3-mod的制作者,修改后的功能简介:

  • 支付系统集成:集成支付宝当面付黛米付易付通码支付等多种支付系统,使用方法见项目wiki
  • UI:修改为圆角,并自定义了几个图标的显示,节点列表等级0可见等级1节点但无法看见节点详情,增加了国家图标显示
  • 商店:商品增加同时连接设备数,用户限速属性
  • 肥羊从那里来的:新用户注册现金奖励|高等级节点体验|设备数量限制
  • 优化:CSS和JS等置入本地提升加载速度
  • 增加v2Ray功能,详情请看维基

原作者 galaxychuck

本面板在宝塔面板5.6.0,宝塔安装版nginx1.12,php 7.1,mysql 5.7上全部功能测试通过

前期准备

购买域名

购买服务器

服务器需要选择国外的,首选国际知名的 Vultr,速度不错、稳定且性价比高。 使用下面的注册地址可以获得 10美元的代金卷 Vultr注册地址:https://www.vultr.com/?ref=7424756

注册并邮件激活账号,充值后即可购买服务器。充值方式: PayPal、支付宝、Bitcoin、信用卡、微信、Gift Code 等 6 种付款方式

Vultr最近出了一个 充值5美元送25美元 的活动,点击活动地址:https://www.vultr.com/promo25b 本次活动仅限新注册用户,老用户不行,充值方式是 PayPal 或 信用卡,支付宝支付不能参与本次活动,而且PayPal和信用卡在Vultr上从未支付过。

活动没有具体截至时间,随时都可能截至,送的25美元有效期为1年,因为Vultr很少有1年有效期的送金活动,所以说这是一个很好的机会。如果你打开活动地址,出现以下图片,表明活动仍在继续中。如果你满足条件,但充值后账号未收到额外的25美元,你可以发工单(ticket)和客服进行沟通

连接服务器

如果你本地电脑使用的是 Windows 系统,那我推荐你下载一个叫 Git Bash 的软件来远程连接服务器 官方免费下载地址:https://git-scm.com/downloads

如果你是 Linux 或者 MacOS 用户,请忽略上面的软件

直接打开终端(Terminal),输入 ssh root@ip 其中 ip 替换成你服务器的 IPv4 地址, 按回车键,然后复制粘贴密码,按回车键即可登录。

粘贴密码时不显示密码,但不影响。

在开始登陆服务器之前,我们可以先打开命令行ping一下自己服务器上的IP地址是否能ping通

总会时不时地有人问我怎样查看自己服务器的IP有没有被墙?怎样ping IP地址? 虽然问题很简单,但还是会有人不懂,那我就来教一下大家吧! ping IP地址 例如: ping 127.0.0.1 将IP地址 127.0.0.1 换成你自己服务器的IP地址 (注意: ping 和 IP地址 中间有一个空格)

搭建SS-Panel

搭建宝塔面板

搭建ss-panel前先搭建宝塔面板,不会搭建的可以自行百度【只是PHP最好选择7.0】

环境安装好后,添加一个站点,绑定你的域名:

搭建SS-Panel

记住你的这个站点路径,回到VPS服务器中,进入到你的站点目录内:

cd /www/wwwroot/你的站点目录
搭建SS-Panel

下载 ss-panel

下载 ss-panel 程序文件:

git clone https://github.com/sphard/ss-panel-v3-mod_UIChanges.git tmp && mv tmp/.git . && rm -rf tmp && git reset --hard
搭建SS-Panel

添加伪静态

回到宝塔面板中,点击站点设置,添加伪静态规则:

location / {
    try_files $uri $uri/ /index.php$is_args$args;
}
搭建SS-Panel

改运行目录

接着点击网站目录,将运行目录改为 /public,如图:

搭建SS-Panel

修改权限

现在在你的站点根目录下找到 storage 目录,点击如图按钮修改权限为 777,并把所有者改为 www

搭建SS-Panel

下载 ss-panel

现在下载 ss-panel 程序到本地电脑.(不会github的我已经下载好放在文末了) 项目地址: https://github.com/sphard/ss-panel-v3-mod_UIChanges

搭建SS-Panel

新建数据库

此时打开宝塔面板内的 数据库,新建一个数据库, 命名为 sspanel :

搭建SS-Panel
搭建SS-Panel

然后登录进去

搭建SS-Panel

导入数据文件

导入我们刚下载到本地的数据库文件,数据库文件的路径是:

ss-panel-v3-mod_Uim/sql/glzjin_all.sql
搭建SS-Panel
搭建SS-Panel
搭建SS-Panel

编辑config.php

回到宝塔面板中,进入 config 目录,编辑目录下的 .config.php 文件:

搭建SS-Panel

自定义名字

填写你的站点名字、域名、随机安全码:

搭建SS-Panel

确定填写都是正确后,保存文件。

安装依赖

回到VPS服务器中,并在你的站点根目录内执行下面的命令开始安装依赖:

php composer.phar install

安装完成后如图所示:

搭建SS-Panel

添加计划任务

添加计划任务:

crontab -e

输入如下内容:

30 22 * * * php /www/wwwroot/你的站点目录/xcat sendDiaryMail
*/1 * * * * php /www/wwwroot/你的站点目录/xcat synclogin
*/1 * * * * php /www/wwwroot/你的站点目录/xcat syncvpn
0 0 * * * php -n /www/wwwroot/你的站点目录/xcat dailyjob
*/1 * * * * php /www/wwwroot/你的站点目录/xcat checkjob    
*/1 * * * * php -n /www/wwwroot/你的站点目录/xcat syncnas

按esc后直接按shift+zz就可以保存退出了

创建管理账号

现在来创建面板的管理员账号:

php -n xcat createAdmin

一般输入这个命令后会有一些警告和错误信息,这里我们直接无视掉就好了,稍等一会儿就会提示让你输入管理员的邮箱之类的,照着填就行。

搭建SS-Panel

同步用户数据

管理员账号创建完成后,现在来同步一下用户数据:

php xcat syncusers

回车即可同步完成

前端安装完成

至此,该面板程序就部署完成了,可以打开浏览器输入你的域名看看长什么样子:

搭建SS-Panel

上面文章写了sspanel魔改面板的搭建:基于宝塔面板的sspanel魔改V3一键脚本  ,此篇文章我们讲一下此面板的使用方法详解

配置文件详解

搭建网站请看 基于宝塔面板的sspanel魔改V3一键脚本

我们搭建完网站之后呢,首先是要修改配置文件,配置文件的默认位置在/www/wwwroot/你的网站名称/config下的 .config.php,打开编辑,一段一段讲解

基础设置

$System_Config['key'] = '1145141919810';// !!! 这个随便修改,尽量复杂一点 !!!
$System_Config['debug'] =  'false';  
$System_Config['appName'] = '7colorblog';             
$System_Config['baseUrl'] = 'http://7colorblog.com';            
$System_Config['muKey'] = '7colorblog';   
$System_Config['db_driver'] = 'mysql';//数据库程序
$System_Config['db_host'] = 'localhost';                //数据库地址
$System_Config['db_database'] = 'sql7colorblog';//数据库名
$System_Config['db_username'] = 'sql7colorblog';//数据库用户名
$System_Config['db_password'] = 'sql7colorblog';//用户名对应的密码

邮件发送设置

$System_Config['mailDriver'] = 'smtp';   // 此处的值只能选择mailgun或smtp或sendgrid,
                                // 选择哪种方式就填哪种,我以qq邮箱的smtp举例,不会获取qqsmtp请看 
# mailgun
$System_Config['mailgun_key'] = '';
$System_Config['mailgun_domain'] = '';
$System_Config['mailgun_sender'] = '';

# smtp
$System_Config['smtp_host'] = 'smtp.qq.com';        //qq邮箱smtp填这个smtp.qq.com,其他邮箱自己百度查一下
$System_Config['smtp_username'] = '1806645549@qq.com';        //填邮箱即可
$System_Config['smtp_port'] = '465';                        //端口填465,记得在宝塔的的“安全”里放开465端口
$System_Config['smtp_name'] = '1806645549@qq.com';        //填邮箱即可
$System_Config['smtp_sender'] = '1806645549@qq.com';        //填邮箱即可
$System_Config['smtp_passsword'] = '7colorblog';            //此处填qq邮箱获得的授权码
$System_Config['smtp_ssl'] = 'true';        //是否启用ssl方式发送

# sendgrid
$System_Config['sendgrid_key'] = '';
$System_Config['sendgrid_sender'] = '';

备份设置

$System_Config['enable_auto_backup']='true';            //是否开启
$System_Config['auto_backup_email']='lizhongnian@7colorblog.com';        //备份到邮箱地址
$System_Config['auto_backup_webroot']='/www/wwwroot/你的站点目录名称/';        //备份的路径
$System_Config['auto_backup_passwd']='7colorblog';            //备份密码

备份设置建议直接使用宝塔的定时任务去备份,可备份到七牛云/阿里云oss/ftp空间等

用户注册设置

$System_Config['defaultTraffic'] = '1';      // 用户初始流量 单位GB
$System_Config['user_expire_in_default']='3650';      //用户账户过期时间,在注册时设置。(天)
$System_Config['user_class_default']='0';      //用户注册等级,在注册时设置。
$System_Config['user_class_expire_default']='24';      //用户等级过期时间,在注册时设置。(小时)
$System_Config['user_conn']='0';      //用户注册客户端数量限制,0为不限制
$System_Config['user_speedlimit']='0';      //用户注册速度默认限制,0为不限制
$System_Config['reg_auto_reset_day']='0';      //注册时的流量重置日
$System_Config['reg_auto_reset_bandwidth']='0'; //需要重置的流量,0不重置
$System_Config['ramdom_group']='0';      //注册时随机分组,注册时随机分配到的分组,多个分组请用英文半角逗号分隔。
$System_Config['reg_method']='aes-256-cfb';      //注册时默认加密方式
$System_Config['reg_protocol']='origin';      //注册时默认协议
$System_Config['reg_protocol_param']='';      //注册时默认协议参数
$System_Config['reg_obfs']='plain';      //注册时默认混淆方式
$System_Config['reg_obfs_param']='';      //注册时默认混淆参数
$System_Config['reg_forbidden_ip']='127.0.0.0/8,::1/128';      //注册时默认禁止访问IP列表,半角英文逗号分割
$System_Config['min_port']='30000';      //用户端口池最小值    
$System_Config['max_port']='65535';      //用户端口池最大值   
$System_Config['reg_forbidden_port']='';      //注册时默认禁止访问端口列表,半角英文逗号分割,支持端口段
$System_Config['mu_suffix']='microsoft.com';      //单端口多用户混淆参数后缀
$System_Config['mu_regex']='%5m%id.%suffix';      //单端口多用户混淆参数表达式,%5m代表取用户特征 md5 的
                                                    //前五位,%id 代表用户id,%suffix 代表上面这个后缀。

邀请设置

$System_Config['enable_invite_code']='true';      //是否强制开启邀请,为true则注册必须使用邀请链
                                                    //接或邀请码 且 邀请人等级为0时邀请链接不可用
$System_Config['inviteNum'] = '10';      // 注册后的邀请链接可用次数
$System_Config['invite_get_money']='1';      //新用户通过私人邀请链接注册,获得奖励金额(鼓励消费),单位元

邮箱验证

$System_Config['enable_email_verify']='false';      //用户注册时是否开启邮件验证
$System_Config['email_verify_ttl']='3600';      //邮箱验证码有效期,默认
$System_Config['email_verify_iplimit']='10';      //单IP可请求验证码次数(上面那个周期内),默认

已注册用户设置

$System_Config['checkinMin'] = '30';       //用户签到签到最少流量 单位MB
$System_Config['checkinMax'] = '100';       //用户签到签到最多流量 单位MB
$System_Config['code_payback']='20';      //充值返利百分比,通过链接邀请的新用户充值会给邀请人返利,(10元就是2元)
$System_Config['invite_gift']='2';      //邀请新用户获得流量奖励,单位G
$System_Config['enable_donate']='false';      //是否开启用户捐赠功能
$System_Config['enable_login_bind_ip']='false';      //是否将登陆线程和IP绑定
$System_Config['enable_class_expire_reset']='true';      //等级到期时是否重置流量
$System_Config['enable_class_expire_reset_traffic']='0';      //等级到期时重置为的流量值,GB
$System_Config['enable_account_expire_reset']='false';      //账户到期时是否重置流量
$System_Config['enable_account_expire_reset_traffic']='0';      //账户到期时重置为的流量值,GB
$System_Config['enable_bought_reset']='false';      //购买时是否重置流量
$System_Config['enable_account_expire_delete']='false';      //账户到期之后是否会删除账户
$System_Config['enable_account_expire_delete_days']='0';      //账户到期几天之后会删除账户
$System_Config['enable_auto_clean_uncheck']='true';      //没签到的0级用户自动清理开关
$System_Config['enable_auto_clean_uncheck_days']='14';      //自动清理多少天没签到的0级用户
$System_Config['auto_clean_min_money']='1';      //自动清理时余额低于多少的0级用户会被清理(int变量 不要写小数)
$System_Config['enable_auto_clean_unused']='false';      //未使用的0级用户自动清理开关
$System_Config['enable_auto_clean_unused_days']='30';//自动清理多少天没使用的0级用户
$System_Config['enable_kill']='false';      //是否允许用户注销账户

Telegram bot设置

(对使用影响不大,可以后续再研究)

$System_Config['enable_telegram']='false';      //是否开启Telegram bot
$System_Config['telegram_token']='';      //Telegram bot,bot 的 token ,跟 father bot 申请
$System_Config['telegram_chatid']='';      //Telegram bot,群组会话 ID,把机器人拉进群里之后跟他 /ping 一下即可得到。
$System_Config['enable_tuling']='false';      //是否开启图灵机器人
$System_Config['tuling_apikey']='';      //图灵机器人API Key
$System_Config['tuling_apisecert']='';      //图灵机器人密钥
$System_Config['telegram_bot']='_bot';      //Telegram 机器人账号
$System_Config['telegram_group_quiet']='false';      //Telegram 机器人在群组中不回应
$System_Config['telegram_qrcode']='zxing_local';      //二维码解码方式,online,phpzbar,zxing_online,zxing_local
$System_Config['telegram_request_token']='';      //Telegram 机器人请求Key,随意设置,由大小写英文和数字组成
                                                  //复杂一些,用于校验请求,更新这个参数之后请 php xcat setTelegram

客服系统设置

(对使用影响不大,可以后续再研究)

$System_Config['enable_crisp']='false';      //是否开启客服系统
$System_Config['crisp_id']='null';      //客服系统ID ID查看路径:crisp.chat-->设置-->设置网站-->显示整合性-->html

验证码设置

(对使用影响不大,可以后续再研究)

//先去 Geetest.com 注册,获取到id和key
$System_Config['geetest_id']='b6665ae3ffb1d27a8000000000000000';
$System_Config['geetest_key']='c5759f8db92f97b46f600000000000';
$System_Config['enable_geetest_reg']='true';      //启用注册验证码
$System_Config['enable_geetest_login']='true';      //启用登录验证码
$System_Config['enable_geetest_checkin']='false';      //启用签到验证码

Geetest设置

id获取如下图示

搭建SS-Panel

效果如下

搭建SS-Panel

支付设置(重点)

注册地址:https://codepay.fateqq.com/

#下方的取值 codepay,doiampay,paymentwall,zfbjk,spay,f2fpay,yftpay,none,f2fpay_codepay
$System_Config['payment_system']='codepay';            //以码支付为例,免费手续费,秒到账,
                                                     //需要一台windows挂软件  去codepay.fateqq.com注册   获取教程请看下方截图
#codepay码支付
#wiki地址:https://goo.gl/dRwRDi  http://t.cn/RnsWjtB
$System_Config['codepay_id']='123676123';      //码支付ID
$System_Config['codepay_key']='1231244fefsezZ';      //码支付通信密钥
//开启码支付,下方就不需要改动了
#doiampay,https://www.daimiyun.cn/register.php?aff=624
$System_Config['doiampay']=[
    'enabled' => [
        'wepay'=>1, // 微信支付1 启用 0 关闭
        'alipay'=>1, // 支付宝1 启用 0 关闭
        'qqpay'=>1, // QQ支付1 启用 0 关闭
    ],
    'mchdata' => [
        'wepay'=>[
            'mchid' => 188888888,   // 商户号
            'phone' => 18888888888, //手机号
            'token' => "example" // 安全验证码
        ],
        'alipay'=>[
            'mchid' => 188888888,   // 商户号
            'phone' => 188888888, //手机号
            'token' => "188888888" // 安全验证码
        ],
        'qqpay'=>[
            'mchid' => 188888888,   // 商户号
            'phone' => 188888888, //手机号
            'token' => "188888888" // 安全验证码
        ],
    ]
];
#alipay,f2fpay
$System_Config['f2fpay_app_id']='';
$System_Config['f2fpay_p_id']='';
$System_Config['alipay_public_key']='';
$System_Config['merchant_private_key']='';
#PaymentWall
$System_Config['pmw_publickey']='';
$System_Config['pmw_privatekey']='';
$System_Config['pmw_widget']='m2_1';
$System_Config['pmw_height']='350px';
#alipay,spay
$System_Config['alipay_id']='';
$System_Config['alipay_key']='';
$System_Config['amount']=[2,23,233,2333,23333];  //充值金额选项设定
#yftpay,https://pay.anypay.me/
$System_Config['yft_secret']='';
$System_Config['yft_accesskey']='';
#alipay,zfbjk.com
$System_Config['zfbjk_pid']='';
$System_Config['zfbjk_key']='';
$System_Config['zfbjk_qrcodeurl']='';

码支付配置

码支付id和秘钥获取

搭建SS-Panel

注意必须上传对应支付方式的二维码

搭建SS-Panel

杂项设置

(默认即可无需更改)

可以开始使用你的网站了

前面我们说了怎么搭建SS-Panel面板,但是面板搭建后还需要部署后端,接下来知道君就给大家拾到拾到。


基于宝塔搭建SS-Panel教程
SS-Panel魔改面板.config.php文件详解

后台添加节点

现在来配置节点,首先使用我们的管理员账号登录到后台,填写节点信息: 

(帐号就是前面那设置的邮箱以及密码)

搭建SS-Panel

选择节点列表

搭建SS-Panel
搭建SS-Panel

填写节点信息

参考我给的这个图来写,你可以变,但是最好别改太多

搭建SS-Panel

 

格式参考

注意节点名称这里,一定要按照如下的格式来填写:

美国 VIP节点1 - 10G带宽
香港 普通节点1 - 100M带宽

诸如此类的,你可以自行发挥,但总体的格式不能有变化。

安装SSR后端

现在回到VPS服务器中,安装SSR后端:

wget https://github.com/jedisct1/libsodium/releases/download/1.0.16/libsodium-1.0.16.tar.gz
tar xf libsodium-1.0.16.tar.gz && cd libsodium-1.0.16
./configure && make -j2 && make install
echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf
cd /root
apt -y install python-setuptools
easy_install pip
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

以上命令一个个直接复制粘贴就行。

关闭防火墙

关闭Ubuntu18.04防火墙

关闭 Ubuntu18.04 的防火墙:

ufw disable

编辑后端配置文件,填写你的节点对应ID和数据库信息:

vi userapiconfig.py

编辑修改是数据库信息

按如图填写(这里会用到VIM编辑器的相关命令): 

显示行号:输入:set nu(注意冒号)

然后按方向键,修改

搭建SS-Panel

节点ID序号在哪里

节点ID序号在哪里?如图: 

搭建SS-Panel

退出编辑器

输入完成后并确定都填写正确后按右上角 esc 

然后输入 按住shift+冒号后再输入wq回车

启动后端

确定都填写正确后,用调试模式先启动后端:

python server.py

看到如下图能够回显用户的连接信息就说明配置正常: 

搭建SS-Panel

否则有问题,就自己根据报错信息来找原因。

确定没问题后,Ctrl+C 退出来,输入如下命令将程序放到后台运行:

./run.sh

此时我们回到面板的节点列表这里,可以看到节点是在线状态: 

搭建SS-Panel

使用肯定也是没有问题的。至此,这个面板就基本算是调教完毕了。有关此面板的更多设置和使用方法请自行研究。

结语

教程会持续更新,尽量让它与时俱进!

最后,也希望有更多的人能看到这篇文章,如果你觉得这篇文章写的还可以,欢迎分享给你身边的朋友们。

STAFF

MIT许可证(MIT)

©2015 orvice

特此免费授予任何获得副本的人这个软件和相关的文档文件(“软件”)来处理在软件中没有限制, 包括但不限于权利使用,复制,修改,合并,发布,分发,再许可和/或销售该软件的副本, 并允许软件所属的人员提供这样做,但须符合以下条件:

上述版权声明和本许可声明必须包含在内本软件的副本或实质性部分。

本软件按“原样”提供,不附有任何形式的明示或暗示保证默示的,包括但不限于对适销性的保证, 适用于特定目的和不侵权。在任何情况下,作者或版权持有者对任何索赔,损坏或其他责任均不负任何责任责任,无论是在合同,民事侵权行为或其他方面, 与本软件或本软件的使用或其他交易有关或与之有关软件。

免责声明

您当前所访问的站点使用的是下面所提到的开源程序。您能看到这个页面仅代表这个站点使用了本程序,其使用过程中发生的一切问题需要其自行解决,本程序不承担任何责任。

原作 orvice
现阶段维护 galaxyqdumplinRin SAMAMikuTony ZouNimaQu
监督 (曾经的)glzjin
作画 Daemonite,(曾经的)glzjin ,galaxyq
staff监督 感谢Anankke为守护staff做出的贡献
出演 (曾经的)glzjinmengyangtony
鸣谢 所有被引用过代码的同学,以及所有提交过issue的同学。当然,还有在使用这份程序的你我Ta。
本程序的参与人员列表 此列表为参与到 ss-panel-v3 glzjin mod UIChanges 中的人员,在此表示感谢。