前言
有一台腾讯云 香港节点的云主机,自建SS线路
硬件:云主机 2核 4G
操作系统:centos7
ss-panel选择的是v2版本,v3版本我也搭建成功过,坑太多,耗费了大半天时间,而且用户注册必须要邀请码,这个不符合我需求。
网站架构:LAMP
安装LAMP(已经安装的跳过)
1.安装apache
yum install httpd
service httpd start
chkconfig httpd on
2.安装Mysql
对于MySQL,本人推荐是mariadb,用法和MySQL一模一样,对我们来说仅仅,就仅仅是换了个名字而已
创建源
vi /etc/yum.repos.d/MariaDB.repo
写入配置文件
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.1/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
安装并让mariadb开机启动
yum install MariaDB-server MariaDB-client
service mariadb start
chkconfig mariadb on
初始化数据库
mysql_secure_installation
3.安装Php7
安装源
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum安装php7
yum -y install php70w php70w-cli php70w-common php70w-fpm php70w-gd php70w-mysql
可以写个demo验证下
<?php
phpinfo();
?>
部署前端SS-Panel
1.下载ss-panel
v2版本的github地址
git clone https://github.com/orvice/ss-panel.git
我用的是网上某人修正的2.4.5-M2版本,发现和原作都有个bug,就是剩余流量为小于2g,签到抽中1-2g流量
原作user/_checkin.php
if(!$oo->is_able_to_check_in()){ $transfer_to_add = 0; }else { if ($oo->unused_transfer() < 2048 * $tomb) { $transfer_to_add = rand(1024, 2048); } else { $transfer_to_add = rand($check_min, $check_max); } $oo->add_transfer($transfer_to_add*$tomb); $oo->update_last_check_in_time(); }
我调整为
if(!$oo->is_able_to_check_in()){ $a['msg'] = '您无法签到,可能是因为您是高级账户或者您24小时内已经签过到了'; }else { $transfer_to_add = rand($check_min, $check_max); $oo->add_transfer($transfer_to_add*$tomb); $oo->update_last_check_in_time(); $a['msg'] = "获得了".$transfer_to_add."MB流量"; }
我修改后打包的百度网盘地址
http://pan.baidu.com/s/1qYGtdwC
比较懒,将ss-panel直接放到apache默认目录/var/www,目录结构
2.修改配置文件
vi lib/config.php
//Define DB Connection 数据库信息 define('DB_HOST','localhost'); define('DB_USER','root'); define('DB_PWD','root'); define('DB_DBNAME','ss'); define('DB_CHARSET','utf8'); define('DB_TYPE','mysql'); /用户注册后获得的邀请码最低最高 //都设置为0用户就不能邀请 //设定为1则需要邀请码注册,0则允许直接注册 $user_invite_min = '1'; $user_invite_max = '2'; $user_need_invite = '1';
3.导入初始数据
mysql -u root -p
source /var/www/html/sql/ss.sql
说明:user表,字段d为已使用流量,字段transfer_enable为总流量,可用于后期再数据库中修改用户的试用流量(网页上只能修改总流量)
部署后端shadowsocks-manyuser
1.安装PIP,并通过 pip 安装 cymysql
yum install python-pip python-m2crypto pip install --upgrade pip pip install --upgrade setuptools pip install cymysql
2.获取shadowsocks-manyuser
git clone -b manyuser https://github.com/mengskysama/shadowsocks.git
3.修改配置
vi Config.py
# 修改的部分 MYSQL_HOST = ‘localhost‘ MYSQL_PORT = 3306 MYSQL_USER = ‘ssuser‘ MYSQL_PASS = ‘sspasswd‘ MYSQL_DB = ‘sspanel‘
4.设置加密方式,这里推荐aes-256-cfb,注意要和ss-panel里保持一致
vi config.json
{ "server":"0.0.0.0", "server_ipv6": "[::]", "server_port":8388, "local_address": "127.0.0.1", "local_port":1080, "password":"m", "timeout":300, "method":"aes-256-cfb" #统一改为 aes-256-cfb 方式加密 }
5.测试shadowsocks服务器端
[root@VM_107_127_centos shadowsocks]# python server.py INFO: loading config from config.json shadowsocks 2017-02-12 16:02:05 INFO db start server at port [1030] pass [954977564] 2017-02-12 16:02:05 INFO start server at 1030 2017-02-12 16:02:05 INFO db start server at port [1031] pass [test] 2017-02-12 16:02:05 INFO start server at 1031 2017-02-12 16:02:05 INFO starting server at 0.0.0.0:1030 2017-02-12 16:02:05 INFO starting server at 0.0.0.0:1031
输出正常,安装成功,ctrl+c关闭测试
6.安装进程管理工具 supervisor 守护进程
yum install supervisor
添加ss配置
vi /etc/supervisord.d/shadowsocks.ini
[program:shadowsocks] command=python /var/www/shadowsocks/server.py -c /var/www/shadowsocks/config.json autorestart=true user=root
设置supervisor开机启动
service supervisord start
chkconfig supervisord on
这时候我们测试下发现supervisor 已经把shadowsocks拉起来了
附命令:
- debug 查看日志:
supervisorctl tail -f shadowsocks stderr
- 启动/重启/停止:
supervisorctl start/restart/stop shadowsocks
后记
ss-panel v2版本比v3版本要方便搭建很多,一小时内就能搞定,而v3版并没有多少实质性的功能。
分享下自己的ss服务,感兴趣的可以自己注册免费使用 http://btsha.com/
参考资料
ss-panel 控制台及 shadowsocks 多用户服务器端部署