前言
最近看到一款挺漂亮的 SSR 管理面板 SSRPanel,手痒安装个耍耍。
目前 SSRPanel 还处于持续更新的状态,故注意事项请仔细查看版本说明。已闭源
。
一、安装并配置 SSRPanel
0x01 环境要求
作为前端的 SSRPanel 是使用 PHP 编写的网页应用程序,它对你的主机运行环境有一定的要求。
- PHP 7.1+
- MySQL 5.5+
- 支持 URL 重写的 Web 服务器(Nginx / Apache 均可)
本教程所使用的环境是 Nginx + PHP 7.1 + MySQL 5.5。
注意,接下来的操作大部分都是在服务器的 shell 中进行的,继续阅读之前,你需要通过 SSH 等工具连接至你的服务器。
0x02 配置站点
以站点 example.com 为例,除正常建站配置外,多了重写的配置:
server {
...
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
...
}
除此之外,编辑 php.ini,将其中如 proc_open、proc_get_status 等 proc 开头的功能启用,即在 disable_functions 里删除这些字段:
# vim /usr/local/php/etc/php.ini
...
disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru
...
同时,验证下有没有安装 fileinfo 扩展,没有要先安装下,有则继续下一步,安装面板:
# php -m |grep fileinfo
fileinfo //没有显示则表示要安装
0x03 安装 SSRPanel
SSRPanel 的 GitHub 项目地址:ssrpanel/SSRPanel
使用 cd 进入你站点的 web 根目录,从 git 上 clone 源码:
# git clone https://github.com/ssrpanel/ssrpanel.git tmp && mv tmp/.git . && rm -rf tmp && git reset --hard
# chown -R www:www storage/
# chown -R www:www bootstrap/
# chmod -R 777 storage/
修改 Nginx 配置,将 root 改为 /public 目录:
server{
...
root /var/www/html/example.com/public;
...
}
0x04 配置 SSRPanel
先来创建数据库,怎么创建就不多说了,建站的一般都玩过数据库吧?需要注意的是排序规则是 utf8mb4,允许从 localhost 及任意位置(同步节点)登录。
导入根目录下的 sql/db.sql,然后修改 config/database.php,将数据库名、用户、密码填入:
...
'mysql' => [
'driver' => 'mysql',
'host' => '127.0.0.1',
'port' => '3306',
'database' => '数据库',
'username' => '用户',
'password' => '密码',
...
需要配置邮件发送的在同目录下找到 mail.php 文件,编辑设置 SMTP 信息即可。
继续安装 SSRPanel 所需的依赖库:
# php composer.phar install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
...
# cp .env.example .env
其他配置可根据需求自行修改。现在访问 http://example.com,就可以看到 SSRPanel 的首页啦(默认账号密码:admin/123456):
0x05 进入 SSRPanel 后台
现在访问 http://example.com 就可以进入 SSRPanel 后台了:
大家可以根据自己的需求修改设置,纯中文都看得懂。
默认开启调试模式,好处就是如果出错了可以快速定位哪里出错了,不需要则在关闭:
# vim config/app.php
...
'debug' => false
...
到这里,作为前端的 SSRPanel 就已经配置完成了。
二、部署并配置后端
在本篇教程中我们使用 ShadowocksR 后端程序。
0x01 安装 libsodium
安装 libsodium 主要是为了支持多种加密方式,
# wget https://dl.vircloud.net/APP/linux/source/libsodium-1.0.16.tar.gz
# tar zxf libsodium-1.0.16.tar.gz
# cd libsodium-1.0.16/
# ./configure && make && make install
# echo /usr/local/lib > /etc/ld.so.conf.d/usrlib.conf
# ldconfig
# cd ../
# rm -rf libsodium*
注:具体可参考《部署 chacha20,salsa20,chacha20-ietf 等高级加密方式》
0x02 安装 ShadowsocksR
# cd ~
# git clone -b manyuser https://github.com/shadowsocksrr/shadowsocksr.git
# cd shadowsocksr
# ./setup_cymysql.sh
# ./initcfg.sh
0x03 配置 ShadowsocksR
修改 userapiconfig.py 的接口为 glzjinmod:
# vim userapiconfig.py
...
API_INTERFACE = 'glzjinmod' #mudbjson, sspanelv2, sspanelv3, sspanelv3ssr, glzjinmod, legendsockssr, muapiv2(not support)
...
修改 user-config.json,将 connect_verbose_info 的值改为 1:
# vim user-config.json
...
"connect_verbose_info": 1,
...
若要兼容 SS,则在 protocol 和 obfs 后添加 _compatible,如: 只能修改用户配置
...
"protocol": "auth_sha1_v4_compatible",
"protocol_param": "",
"obfs": "tls1.2_ticket_auth_compatible",
...
修改 usermysql.json,将数据库信息改为前面自己创建的数据库信息,记得修改 node_id 的值为 1,这个值是要和前端面板的节点 ID 相对应的:
# vim usermysql.json
...
"host": "SSRPanel 地址",
"port": 3306,
"user": "用户",
"password": "密码",
"db": "数据库",
"node_id": 1,
...
测试一下:
# python server.py
IPv6 support
2018-04-02 21:13:34 INFO util.py:85 loading libsodium from libsodium.so.23
2018-04-02 21:13:34 INFO asyncdns.py:324 dns server: [('8.8.8.8', 53)]
2018-04-02 21:13:34 INFO shell.py:72 ShadowsocksR 3.4.0 2017-07-27
2018-04-02 21:13:34 INFO db_transfer.py:238 current process RLIMIT_NOFILE resource: soft 1024 hard 4096
2018-04-02 21:13:34 INFO db_transfer.py:205 db start server at port [xxx] pass [xxx] protocol [xxx] method [xxx] obfs [xxx]
2018-04-02 21:13:34 INFO server_pool.py:127 starting server at [::]:xxx
2018-04-02 21:13:34 INFO server_pool.py:153 starting server at 0.0.0.0:xxx
看到这样的提示,表示后端安装成功。
运行说明, 有几种方式。根据需要执行即可:
- python server.py 用于调错的
- ./run.sh 无日志后台运行
- ./logrun.sh 有日志后台运行
- ./stop.sh 停止运行
- ./tail.sh 在有日志后台运行的情况下显示运行信息
三、FAQ
0x01 客户端运行没问题,但是连不上
防火墙端口打开了吗?客户端 ping 得通节点吗?
0x02 SSRPanel 怎么更新呢
SSRPanel 更新勤快,可以在网站根目录执行以下命令:
# git pull
0x03
至此,已完成对 SSRPanel 前端、后端的部署。