SSRPanel(Via)可以帮助我们方便的管理用户和统计流量。
环境
- Linode
- Debian 9
- PHP 7.0
- Apache 2.4
下载SSRPanel
1 2 |
cd /home/www/ git clone https://github.com/ssrpanel/SSRPanel.git |
配置数据库
1.创建一个utf8mb4的数据库及对应用户
2.编辑 .env 文件,修改 DB_ 开头的值,填入刚才创建的数据库名及用户名密码
3.导入 sql/db.sql 到之前创建的数据库
安装SSRPanel
安装依赖
1 |
php composer.phar install |
如果php≤7.1,直接使用composer install命令会出错,可以使用以下命令忽略版本检查,安装依赖
1 |
composer install --ignore-platform-reqs |
生成密钥
1 |
php artisan key:generate |
设置文件夹权限
1 2 |
chown -R www-data:www-data storage/ chmod -R 777 storage/ |
URL重写规则
Apache规则已在文件夹中自带,无需另外设置
编辑php.ini
找到php.ini
vim /usr/local/php/etc/php.ini
搜索disable_function
删除proc_开头的所有函数
安装流量统计
1 |
apt-get install vnstat |
配置定时任务
打开root的crontab -e,在最下方添加定时任务,使用-u指定使用www-data用户权限
1 2 |
# SSRPanel Cron Job * * * * * sudo -u www-data php /var/www/SSRPanel/artisan schedule:run >> /dev/null 2>&1 |
验证:进入控制面板,查看系统日志,如果有定时任务,说明设置成功,如果没有记录,说明定时任务设置错误。另外通过监控系统日志, tail -f /var/log/syslog 显示cron命令执行成功并不能说明命令执行无错误,只能说明命令格式无错误,需要看SSRPanel的系统日志确认定时任务是否执行成功。
解决节点流量统计一直为0B的问题
如果流量统计一直为0B,可以通过以下命令手动执行流量统计刷新,如果执行后流量不为0B,说明节点正确上报流量正常,可以确认是定时任务设置有误。
1 2 3 4 5 6 |
#手动执行定时任务 sudo -u www-data php /var/www/SSRPanel/artisan autoJob #统计节点流量(小时) sudo -u www-data php /var/www/SSRPanel/artisan autoStatisticsNodeHourlyTraffic #统计节点流量(天) sudo -u www-data php /var/www/SSRPanel/artisan autoStatisticsNodeDailyTraffic |
上线前关闭debug模式
务必在上线前将根目录下.env中的debug模式设置成false,否则数据库信息在出错的时候会以明文方式展示出来
1 |
APP_DEBUG=false |
更新SSRPanel
备份文件
备份/var/www/dev.us.minirplus.com/SSRPanel/.env
更新文件
1 2 3 |
bash /var/www/SSRPanel/update.sh bash /var/www/SSRPanel/update.sh chown -R www-data:www-data /var/www/SSRPanel |
更新数据库
打开/var/www/dev.us.minirplus.com/SSRPanel/sql/update
将所有新增加的sql更新入数据库中
SSR节点部署
配置内部网络
由于节点需要连接SSRPanel的MySQL交换数据,为了不公开SSRPanel的3306端口,使用Wireguard来配置节点内部网络(教程)。
配置内部网络后
- SSRPanel:192.168.2.1
- SSR节点1:192.168.2.2
- SSR节点2:192.168.2.3
配置SSR
下载SSR(建议使用自己信任的SSR源)
1 2 |
#备用源 git clone https://github.com/ssrpanel/shadowsocksr.git |
初始化SSR(创建用户配置文件)
1 |
bash ~/shadowsocksr/initcfg.sh |
修改SSR配置文件,修改以下三个文件的高亮部分,用于适配SSRPanel
~/shadowsocksr/user-config.json
注意”protocol_param”: “#”,其余配置都和单机版类似
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
{ "server": "0.0.0.0", "server_ipv6": "::", "server_port": 8388, "local_address": "127.0.0.1", "local_port": 1080, "password": "<set password>", "method": "aes-256-cfb", "protocol": "auth_aes128_sha1", "protocol_param": "", "obfs": "tls1.2_ticket_auth_compatible", "obfs_param": "", "speed_limit_per_con": 0, "speed_limit_per_user": 0, "additional_ports" : { "443": { "passwd": "<set password>", "method": "aes-256-cfb", "protocol": "auth_aes128_sha1", "protocol_param": "#", "obfs": "tls1.2_ticket_auth_compatible", "obfs_param": "" } }, // only works under multi-user mode "additional_ports_only" : true, // only works under multi-user mode "timeout": 120, "udp_timeout": 60, "dns_ipv6": false, "connect_verbose_info": 1, "redirect": "", "fast_open": false } |
~/shadowsocksr/userapiconfig.py
如果配置完成后在节点shell中能够用mysql命令连接主机数据库,但是SSRPanel中一直显示宕机,可能是这个的API协议类型填写错误,SSRPanel所用的不是默认的sspanelv2,需要改成glzjinmod
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# Config API_INTERFACE = 'glzjinmod' #mudbjson, sspanelv2, sspanelv3, sspanelv3ssr, glzjinmod, legendsockssr, muapiv2(not support) UPDATE_TIME = 60 SERVER_PUB_ADDR = '127.0.0.1' # mujson_mgr need this to generate ssr link #mudb MUDB_FILE = 'mudb.json' # Mysql MYSQL_CONFIG = 'usermysql.json' # API MUAPI_CONFIG = 'usermuapi.json' |
~/shadowsocksr/usermysql.json
host是SSRPanel所在主机的Wireguard内网IP地址,user和password和db是SSRPanel所在主机的数据库配置信息,node_id是在SSRPanel新建节点时的节点id,所以填写的同时在SSRPanel中新建一个节点。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
{ "host": "192.168.2.1", "port": 3306, "user": "ssrpanel", "password": "<set password>", "db": "ssrpanel", "node_id": 1, "transfer_mul": 1.0, "ssl_enable": 0, "ssl_ca": "", "ssl_cert": "", "ssl_key": "" } |
安装cymysql
由于SSR需要连接MySQL,所以需要安装Python插件cymysql,cymysql基于python3.5
首先将系统python版本切换至Python3.5(教程)
查询python版本
1 |
python -V |
安装python3-pip
1 |
apt install python3-pip |
安装cymysql
1 |
pip3 install cymysql |
运行SSR
前台运行,用于检测配置是否正确,正常运行后切换至后台运行。
1 |
python ~/shadowsocksr/server.py |
后台运行(带日志),运行后查询日志(~/shadowsocksr/ssserver.log),看是否有出错信息,有时候前台运行正常,在后台运行的时候也会出错。
1 |
~/shadowsocksr/logrun.sh |
停止
1 |
~/shadowsocksr/stop.sh |
持续更新》》》
One comment