lala.im:SS-Panel-Smarty-Edition详细安装配置教程

運維技術·VPN代理·lala.im · 2018-01-19 · 123 人浏览

原文地址:https://lala.im/2362.html,請支持原作者!該處僅作轉載。

SS-Panel-Smarty-Edition是一款SSR面板程序,前排友情提醒此面板有很多坑,只适合折腾或者是几个朋友间使用,不适合用在生产环境!
可能这个面板给我折腾的动力就在于有一个比较亮眼的节点负载实时监控的功能吧。。。
文章可能较长,分享一首音乐,可以边听边看。。。
准备一台VPS,系统选择CentOS7X64,使用Xshell以root用户身份登录到机器内。
首先给你的VPS安装一个宝塔WEB面板:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh

接着用宝塔安装一个LNMP环境,组件如下:

範例
在安装环境的过程中,我们可以先把这个面板程序下载到本地:
https://github.com/Ahref-Group/SS-Panel-smarty-Edition/archive/smarty.zip
等LNMP环境装好,首先打开phpmyadmin:

範例
添加一个新的数据库,我这里就命名为ss好了:

範例
接着点用户,编辑如图所示用户的权限:

範例
点击登录信息,将Host改成任意主机,然后保留旧用户,最后点执行:

範例
回到之前的用户界面,编辑如图所示的用户:

範例
勾上全局权限,然后执行:

範例
此时进入到我们的ss数据库中,按如图导入面板程序的数据库文件:

範例
该数据库文件在sql/ss-panel.sql目录下。
回到宝塔面板中添加一个新站点,记住你的站点根目录:

範例
点击站点设置,配置一下伪静态规则:

範例
规则如下:

location ~ \.tpl$ {
        deny all;
}

此时回到你的Xshell中去,进入到你的站点根目录:

cd /www/wwwroot/你的站点域名

下载面板程序文件:

git clone https://github.com/Ahref-Group/SS-Panel-smarty-Edition.git tmp && mv tmp/.git . && rm -rf tmp && git reset --hard

进入到lib目录:

cd lib

重命名配置文件:

cp config-sample.php config.php

进入到lib/Ss/Code目录:

cd Ss/Code

重命名配置文件:

cp config-sample.php config.php

回到宝塔面板中,打开你的站点根目录下面的lib目录,编辑权限:

範例
给777:

範例
进入到这个lib目录中,编辑里面的config.php配置文件:

範例
修改配置文件内的数据库连接信息为你自己的:

範例
修改你的站点域名,注意域名后面一定要加/号:

範例
其他的配置按你自己的需要来修改吧,这里就不多做说明了。修改完成后保存配置文件。
此时使用浏览器打开你的站点,第一次应该会弹一些报错信息,但里面类似有一句中文“数据库创建成功、导入成功”之类的,接着重新刷新一下,你应该就可以看到这个面板的首页了:

範例
接下来开始填坑。
第一坑:
首先是这个面板的管理员账号不能直接注册得到,需要我们自己在数据库里面插入字段。
首先回到你的phpmyadmin中,打开invite_code这个表,插入如下图的数据:

範例
这样我们就生成了一个用户注册邀请码,邀请码为233
此时我们打开站点的注册页面,通过这个页面注册一个账号,注册完成后,打开ss_user_admin这个表,插入如下图的数据:

範例
这样我们就把刚才注册的账号提升为了管理员,此时就可以用这个账号登录面板的后台了。该面板后台登录地址:

你的域名+/admin

登录界面:

範例
登录成功后的后台管理界面:

範例
至此,第一个坑我们算是填完了。
第二坑:
现在我们要在后台添加节点了,所以当你添加节点的时候应该会看到如下图的报错:

範例
很明显这个文件内的PHP代码语法有问题,所以我们打开对应的文件路径先看看是个什么情况:
https://github.com/Ahref-Group/SS-Panel-smarty-Edition/blob/smarty/admin/node_add.php
可以看到13行这段,明显多了两个英文逗号。。。

範例
估计是写代码的时候这里估计还想着要加点什么功能,但是又没加上去或者是准备阉割掉什么功能后这里忘记改了,所以出了这么个BUG,解决办法很简单,找到我们的站点对应的文件,把这两个逗号删了即可:

範例
你们可以直接复制替换:

$query = $node->Add($node_name,$node_type,$node_server,$node_info,$node_status,$node_order,$parameter);

现在我们就可以来正常打开页面添加节点信息了,请注意务必按照我如下图中的格式来填写节点信息:

範例
至此,这个坑也算是填完了吧。。。
第三坑:
在我们通过后台添加完节点信息后,回到前台的用户列表这块,你会发现又莫名其妙的报了个错:

範例
如果用户自己看不到节点配置信息,岂不是很蠢?那用户该怎么用我们的服务?所以很无奈,这个BUG也得修。
首先还是看下源文件:
https://github.com/Ahref-Group/SS-Panel-smarty-Edition/blob/smarty/user/node.php
看之前的报错可以断定有一个参数没被定义,问题出在这里:

範例
所以我这里就用个简单粗暴的办法解决,直接把未定义的参数删了,反正也没卵用,找到我们站点内对应的文件,把如下这串代码删除掉:

$name =  $node->Name();

如图:

範例
现在来访问一下节点列表,发现可以访问了,不过头顶上方还是有一个警告错误:
Notice: Undefined variable: name in /www/wwwroot/xxxxxxx/user/node.php on line 54
看报错信息,还是之前的这个文件,问题在54行:

$ssurl = $server.":".$port.":".$protocol.":".$method.":".$obfs.":".base64_url_encode($pass)."/?obfsparam=".base64_url_encode($parameter)."&protoparam=".base64_url_encode($protoparam)."&remarks=".base64_url_encode($name)."&group=".base64_url_encode('Groupname');

修改成这样:

$ssurl = $server.":".$port.":".$protocol.":".$method.":".$obfs.":".base64_url_encode($pass)."/?obfsparam=".base64_url_encode($parameter)."&protoparam=".base64_url_encode($protoparam)."&group=".base64_url_encode('Groupname');

现在再来看看节点列表,已经完全正常了:

範例
至此,坑基本算是填完了,然后就是后端的搭建了。
此面板貌似节点这块只支持SSR的none加密方式,所以和以往的后端搭建也有一点点不同。
首先我们先按常规方法安装SSR后端:

cd /root
git clone -b manyuser https://github.com/shadowsocksrr/shadowsocksr.git
cd shadowsocksr
./setup_cymysql.sh
./initcfg.sh
vi userapiconfig.py

编辑usermysql.json,将数据库连接信息改成我们自己的:

vi usermysql.json

然后编辑user-config.json:

vi user-config.json

按如图填写(一定不能错!否则待会你的节点就无法正常连接):

範例
因为此面板只支持SSR无加密连接,而又因为SSR这个无加密的特性,所以对应的配置只能如下:

"method": "none",
"protocol": "auth_chain_a",
"obfs": "tls1.2_ticket_auth",

在这样配置完成后,我们就可以把SSR后端放到后台运行了,先关闭防火墙:

systemctl stop firewalld.service

运行后端:

./run.sh

接着我们来配置这个面板最大的特色功能:节点实时负载。
回到宝塔面板进入到我们的站点根目录可以找到一个名为serverinfo.py的文件,编辑它:

範例
按上图所示:
postrul填写你的站点域名。
server_id填写你这台机器上对应的节点ID
节点ID怎么看?在你的面板后台-管理节点:

範例
修改完成后,保存这个文件。
回到Xshell中,进入到你的站点根目录:

cd /www/wwwroot/你的站点域名

安装screen:

yum -y install screen

运行serverinfo.py:

screen -dmS serverinfo python serverinfo.py

现在我们就可以在面板内扫描一下节点的二维码,来看看能不能正常使用了:

範例
至此,这个面板的搭建就算大功告成了,至于面板内置的各种其他功能,比如充值码、邀请码、套餐设置什么的,你们有兴趣就自己研究下吧。
写在最后:
写这篇文章是因为看到这个博主的介绍:
ShadowSocks多用户管理系统(SS-Panel-smarty-Edition+SSR+锐速)搭建教程

然后看到他下面有几个网友提的问题,这篇博主没介绍完全,所以我就写了今天这篇文章。。。希望能帮助到需要的人,回见~

運維技術 VPN代理 lala.im
Theme Jasmine by Kent Liao