SSRPanel+SSRR服务端

2018/10 24 17:10

SSRPanel+SSRR服务端

项目描述

SSR后台部署与使用

市面上的SSR服务端版本太多,由于本项目是公司使用,所以需要搭配后台。挑选之下,选用了开源项目SSRSSRPanel

如果在使用本项目中有疑问,可以发邮件至mrmercury@foxmail.com寻求帮助

博客地址

Github

在此,衷心感谢作者:

1.Bruskyii Panda

因为站在巨人的肩膀上才有的此项目,谢谢各位的奉献!

本项目搭建完毕以后,需要在大陆以外的vps上搭建服务端,传送门

  1. 1.多节点账号管理面板,兼容SSSSRR
  2. 2.需配合SSRSSRR版后端使用
  3. 3.强大的管理后台、美观的界面、简单易用的开关、支持移动端自适应
  4. 4.内含简单的购物、卡券、邀请码、推广返利&提现、文章管理、工单(回复带邮件提醒)等模块
  5. 5.用户、节点标签化,不同用户可见不同节点
  6. 6.SS配置转SSR(R)配置,轻松一键导入SS账号
  7. 7.单机单节点日志分析功能
  8. 8.账号、节点24小时和近30天内的流量监控
  9. 9.邮件、serverChan投递都有记录
  10. 10.账号临近到期、流量不够会自动发邮件提醒,自动禁用到期、流量异常的账号,自动清除日志等各种强大的定时任务
  11. 11.后台一键添加加密方式、混淆、协议、等级
  12. 12.强大的后台一键配置功能
  13. 13.屏蔽常见爬虫、屏蔽机器人
  14. 14.支持单端口多用户
  15. 15.支持节点订阅功能,可自由更换订阅地址、封禁账号订阅地址
  16. 16.节点宕机提醒(邮件、ServerChan微信提醒)
  17. 17.支持多国语言,自带英文语言包
  18. 18.订阅防投毒机制
  19. 19.自动释放端口机制,防止端口被大量长期占用
  20. 20.封特定国家、地区、封IP
  21. 21.有赞云支付
  22. 22.开放API,方便自行定制改造客户端

演示&交流

  1. 官方站:http://www.ssrpanel.com
  2. 演示站:http://demo.ssrpanel.com (用户名:admin 密码:123456,请勿修改密码)
  3. telegram订阅频道:https://t.me/ssrpanel
  4. telegram千人讨论群已解散,有问题提issues

VPS推荐

建议购买 Vultr家 $5美金/月的VPS($2.5的抢不上),支持支付宝付款。

安装

环境要求

  1. PHP 7.1 (必须)
  2. MYSQL 5.5 (推荐5.6+)
  3. 内存 1G+
  4. 磁盘空间 10G+
  5. PHP必须开启curl、gd、fileinfo、openssl、mbstring组件
  6. 安装完成后记得编辑config/app.php中 'debug' => true, 改为 false

拉取代码

  1. cd /home/wwwroot/
  2. git clone https://github.com/ssrpanel/ssrpanel.git

安装面板

  1. cd ssrpanel/
  2. php composer.phar install
  3. php artisan key:generate
  4. chown -R www:www storage/
  5. chmod -R 777storage/

配置数据库

连接数据库
  1. 1.创建一个utf8mb4的数据库
  2. 2.编辑config/database.php,编辑mysql选项中如下配置值:host、port、database、username、password
自动部署
迁移(创建表结构)

php artisan migrate
播种(填充数据)
  1. php artisan db:seed --class=ConfigTableSeeder
  2. php artisan db:seed --class=CountryTableSeeder
  3. php artisan db:seed --class=LevelTableSeeder
  4. php artisan db:seed --class=SsConfigTableSeeder
  5. php artisan db:seed --class=UserTableSeeder
手工部署

迁移未经完整测试,存在BUG,可以手动将sql/db.sql导入到创建好的数据库

加入NGINX的URL重写规则

  1. location / {
  2. try_files $uri $uri/ /index.php$is_args$args;
  3. }

编辑php.ini

  1. 找到php.ini
  2. vim /usr/local/php/etc/php.ini
  3. 搜索disable_function
  4. 删除proc_开头的所有函数

出现500错误

  1. 理论上操作到上面那些步骤完了应该是可以正常访问网站了,如果网站出现500错误,请看WIKI,很有可能是fastcgi的错误
  2. 请看WIKI:https://github.com/ssrpanel/ssrpanel/wiki/%E5%87%BA%E7%8E%B0-open_basedir%E9%94%99%E8%AF%AF
  3. 修改完记得重启NGINX和PHP-FPM

重启NGINX和PHP-FPM

  1. service nginx restart
  2. service php-fpm restart

定时任务

  1. crontab加入如下命令(请自行修改php、ssrpanel路径):
  2. * * * * * php /home/wwwroot/SSRPanel/artisan schedule:run >> /dev/null2>&1
  3. 注意运行权限,必须跟ssrpanel项目权限一致,否则出现无权限报错:
  4. 例如用lnmp的话默认权限用户组是 www:www,则添加定时任务是这样的,宝塔自己搞定:
  5. crontab -e -u www

邮件配置

SMTP
  1. 编辑 config\mail.php
  2. 请自行配置如下内容
  3. 'driver' => 'smtp',
  4. 'host' => 'smtp.exmail.qq.com',
  5. 'port' => 465,
  6. 'from' => [
  7. 'address' => 'xxx@qq.com',
  8. 'name' => 'SSRPanel',
  9. ],
  10. 'encryption' => 'ssl',
  11. 'username' => 'xxx@qq.com',
  12. 'password' => 'xxxxxx',
Mailgun
  1. 编辑 config\mail.php
  2. 将 driver 值改为 mailgun
  3. 编辑 config/services.php
  4. 请自行配置如下内容
  5. 'mailgun' => [
  6. 'domain' => 'mailgun发件域名',
  7. 'secret' => 'mailgun上申请到的secret',
  8. ],
发邮件失败处理
  1. 如果使用了逗比的ban_iptables.sh来防止用户发垃圾邮件
  2. 可能会导致出现 Connectioncouldnotbeestablishedwithhostsmtp.exmail.qq.com[Connection timed out #110] 这样的错误
  3. 因为smtp发邮件必须用到25,26,465,587这四个端口,逗比的一键脚本会将这些端口一并封禁
  4. 可以编辑iptables,注释掉以下这段(前面加个#号就可以),然后保存并重启iptables
  5. #-AOUTPUT-ptcp-mmultiport--dports 25,26,465,587 -mstate--stateNEW,ESTABLISHED-jREJECT--reject-withicmp-port-unreachable

英文版

  1. 修改 config/app.php 下的 locale 值为 en
  2. 欢迎提交其他语言的语言包,语言包在:resources/lang下

日志分析(仅支持单机单节点)

  1. 找到SSR服务端所在的ssserver.log文件
  2. 进入ssrpanel所在目录,建立一个软连接,并授权
  3. cd /home/wwwroot/ssrpanel/storage/app
  4. ln -S ssserver.log /root/shadowsocksr/ssserver.log
  5. chown www:www ssserver.log

SSR(R)部署

手动部署(基于SSRR)
  1. git clone https://github.com/ssrpanel/shadowsocksr.git
  2. cd shadowsocksr
  3. sh initcfg.sh
  4. 配置 usermysql.json 里的数据库链接,NODE_ID就是节点ID,对应面板后台里添加的节点的自增ID,所以请先把面板搭好,搭好后进后台添加节点
一键自动部署(基于SSR3.4)
  1. wget -N --no-check-certificate https://raw.githubusercontent.com/ssrpanel/ssrpanel/master/server/deploy_ssr.sh;chmod +x deploy_ssr.sh;./deploy_ssr.sh
  2. 或者使用另一个脚本
  3. wget -N --no-check-certificate https://raw.githubusercontent.com/maxzh0916/Shadowsowcks1Click/master/Shadowsowcks1Click.sh;chmod +x Shadowsowcks1Click.sh;./Shadowsowcks1Click.sh

更新代码

  1. 进到ssrpanel目录下执行:
  2. git pull
  3. 如果每次更新都会出现数据库文件被覆盖,请先执行一次:
  4. chmod a+x fix_git.sh && sh fix_git.sh
  5. 如果本地自行改了文件,想用回原版代码,请先备份好 config/database.php,然后执行以下命令:
  6. chmod a+x update.sh && sh update.sh
  7. 如果更新完代码各种错误,请先执行一遍 php composer.phar install

网卡流量监控一键脚本(Vnstat)

wget -N --no-check-certificate https://raw.githubusercontent.com/ssrpanel/ssrpanel/master/server/deploy
_vnstat.sh;chmod +x deploy_vnstat.sh;./deploy_vnstat.sh

单端口多用户(推荐)

  1. 编辑节点的 user-config.json 文件:
  2. vim user-config.json
  3. "additional_ports" : {}, 改为以下内容:
  4. "additional_ports" : {
  5. "80": {
  6. "passwd": "统一认证密码", // 例如 SSRP4ne1,推荐不要出现除大小写字母数字以外的任何字符
  7. "method": "统一认证加密方式", // 例如 aes-128-ctr
  8. "protocol": "统一认证协议", // 可选值:orgin、verify_deflate、auth_sha1_v4、auth_aes128_md5、auth_aes128_sha1、auth_chain_a
  9. "protocol_param": "#", //#号前面带上数字,则可以限制在线每个用户的最多在线设备数,仅限 auth_chain_a 协议下有效,例如: 3# 表示限制最多3个设备在线
  10. "obfs": "tls1.2_ticket_auth", // 可选值:plain、http_simple、http_post、random_head、tls1.2_ticket_auth
  11. "obfs_param": ""
  12. },
  13. "443": {
  14. "passwd": "统一认证密码",
  15. "method": "统一认证加密方式",
  16. "protocol": "统一认证协议",
  17. "protocol_param": "#",
  18. "obfs": "tls1.2_ticket_auth",
  19. "obfs_param": ""
  20. }
  21. },
  22. 保存,然后重启SSR服务。
  23. 客户端设置:
  24. 远程端口:80
  25. 密码:password
  26. 加密方式:aes-128-ctr
  27. 协议:auth_aes128_md5
  28. 混淆插件:tls1.2_ticket_auth
  29. 协议参数:1026:@123 (SSR端口:SSR密码)
  30. 远程端口:443
  31. 密码:password
  32. 加密方式:aes-128-ctr
  33. 协议:auth_aes128_sha1
  34. 混淆插件:tls1.2_ticket_auth
  35. 协议参数:1026:SSRP4ne1 (SSR端口:SSR密码)
  36. 经实测,节点后端使用auth_sha1_v4_compatible,可以兼容auth_chain_a
  37. 注意:如果想强制所有账号都走80443这样自定义的端口的话,记得把 user-config.json 中的 additional_ports_only 设置为 true
  38. 警告:经实测单端口下如果用锐速没有效果,很可能是VPS供应商限制了这两个端口
  39. 提示:配置单端口最好先看下这个WIKI,防止才踩坑:https://github.com/ssrpanel/ssrpanel/wiki/%E5%8D%95%E7%AB%AF%E5%8F%A3%E5%A4%9A%E7%94%A8%E6%88%B7%E7%9A%84%E5%9D%91

校时

  1. 如果架构是“面板机-数据库机-多节点机”,请务必保持各个服务器之间的时间一致,否则会产生:节点的在线数不准确、最后使用时间异常、单端口多用户功能失效等。
  2. 推荐统一使用CST时间并安装校时服务:
  3. vim /etc/sysconfig/clock 把值改为 Asia/Shanghai
  4. cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  5. 重启一下服务器,然后:
  6. yum install ntp
  7. ntpdate cn.pool.ntp.org

二开规范

  1. 如果有小伙伴要基于本程序进行二次开发,自行定制,请谨记一下规则(如果愿意提PR我也很欢迎)
  2. 1.数据库表字段请务必使用蟒蛇法,严禁使用驼峰法
  3. 2.写完代码最好格式化,该空格一定要空格,该注释一定要注释,便于他人阅读代码
  4. 3.本项目中ajax返回格式都是 {"status":"fail 或者 success", "data":[数据] ,"message":"文本消息提示语"}

致敬

--转载请注明: http://91o.cc/ssrpanelssrr%e6%9c%8d%e5%8a%a1%e7%ab%af/

作者 - 分类 未分类

发表回复

(必填)