本文针对 ss-panel V2 版本的教程,更新于 2018-1-4
服务器vultrdigitalocean系统版本 Ubuntu 16.04.3 LTS测试通过

周末本想出去转转,无奈帝都的雾霾太大,只能在家里撸码,整了一个ss账号分享平台,在这记录一下过程吧。

本文是基于Ubuntu 14.04下使用后端manyuser和前端ss-panel,使用nginx做代理所搭建的。
服务器推荐vultrdigitalocean

过程

首先我们远程登录服务器,安装nginx,mysql和php,具体命令如下:

1
2
3
4
root@ubuntu-512mb-sfo1-01:~# apt-get update
root@ubuntu-512mb-sfo1-01:~# apt-get install nginx
root@ubuntu-512mb-sfo1-01:~# apt-get install mysql-client mysql-server
root@ubuntu-512mb-sfo1-01:~# apt-get install php php-fpm php-cli php-cgi php-mysql php-gd

过程中如果没有错误,那就说明我们安装成功了,如果服务器中有这些环境,则可以忽略对应的步骤。

接下来我们就要创建数据库了,运行mysql -u root -p,输入root密码。开始创建shadowsocks数据库,具体 SQL:create database shadowsocks; 如下图:

然后建立一个名为ss,密码为ss的MySQL用户,因为这个用户只能本地登录,所以密码简单点也无所谓:

1
mysql>  grant all privileges on shadowsocks.* to ss@localhost identified by 'ss';

创建完成我们退出MySQL:

1
mysql>  exit

到这步,我们的数据库已经完成了。下面我们来安装shadowsocks ss-panel supervisor,一次执行下面的命令:

1
2
3
4
root@ubuntu-512mb-sfo1-01:~# apt-get install python-pip git python-m2crypto
root@ubuntu-512mb-sfo1-01:~# pip install cymysql
root@ubuntu-512mb-sfo1-01:~# git clone -b manyuser https://github.com/mengskysama/shadowsocks.git
root@ubuntu-512mb-sfo1-01:~# cd shadowsocks/shadowsocks/

如果是服务器上没有git,则需要先安装git,具体如下:

1
root@ubuntu-512mb-sfo1-01:~# pip install git

然后我们来修改配置文件/root/shadowsocks/shadowsocks/Config.py

1
2
3
4
5
6
7
8
9
10
11
#Config
MYSQL_HOST = 'localhost'
MYSQL_PORT = 3306
MYSQL_USER = 'ss'
MYSQL_PASS = 'ss'
MYSQL_DB = 'shadowsocks'
MANAGE_PASS = 'ss233333333'
#if you want manage in other server you should set this value to global ip
MANAGE_BIND_IP = '127.0.0.1'
#make sure this port is idle
MANAGE_PORT = 23333

然后我们还要修改这个文件/root/shadowsocks/shadowsocks/config.json

1
2
3
4
5
6
7
8
9
10
{
"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"
}

然后我们来导入数据库。进入MySQL:

1
2
3
4
root@ubuntu-512mb-sfo1-01:~# mysql -u root -p
mysql> use shadowsocks;
mysql> source /root/shadowsocks/shadowsocks/shadowsocks.sql;
mysql> exit;

导入数据库之后,我们在shadowsocks目录下运行一下server.py,具体如下:

1
2
root@ubuntu-512mb-sfo1-01:~# cd shadowsocks/shadowsocks/
root@ubuntu-512mb-sfo1-01:~# python server.py

没有error的话,ctrl + c结束进程,我们进行下一步,安装守护进程,这样重启以后或者程序崩了还能自己重启。

1
root@ubuntu-512mb-sfo1-01:~# apt-get install python-pip python-m2crypto supervisor

然后我们需要新建两个文件,具体如下:

1
root@ubuntu-512mb-sfo1-01:~# vim /etc/supervisor/conf.d/shadowsocks.conf

具体内容为:

1
2
3
4
[program:shadowsocks]
command=python /root/shadowsocks/shadowsocks/server.py -c /root/shadowsocks/shadowsocks/config.json
autorestart=true
user=root

再创建一个文件

1
root@ubuntu-512mb-sfo1-01:~# vim /etc/supervisor/conf.d/cgi.conf

具体内容为:

1
2
3
4
[program:cgi]
command=php-cgi -b localhost:9000
autorestart=true
user=root

然后命令:

1
2
3
root@ubuntu-512mb-sfo1-01:~# cd shadowsocks/shadowsocks
root@ubuntu-512mb-sfo1-01:~# service supervisor start
root@ubuntu-512mb-sfo1-01:~# supervisorctl reload

在以下两个文件/etc/profile
/etc/default/supervisor结尾添加如下代码:

1
2
3
ulimit -n 51200
ulimit -Sn 4096
ulimit -Hn 8192

至此ss的后端服务已经搞定了,现在我们来整前端界面:

1
2
root@ubuntu-512mb-sfo1-01:~# cd /usr/share/nginx/
root@ubuntu-512mb-sfo1-01:~# git clone -b v2 https://github.com/orvice/ss-panel.git

重命名文件夹,

1
root@ubuntu-512mb-sfo1-01:~# mv ss-panel ss

现在来修改文件夹权限,

1
2
3
4
5
root@ubuntu-512mb-sfo1-01:~# cd /usr/share/nginx/
root@ubuntu-512mb-sfo1-01:~# chmod 777 * -R /usr/share/nginx/html
root@ubuntu-512mb-sfo1-01:~# chmod 777 * -R /usr/share/nginx/ss
root@ubuntu-512mb-sfo1-01:~# chown -R www-data:www-data /usr/share/nginx/html
root@ubuntu-512mb-sfo1-01:~# chown -R www-data:www-data /usr/share/nginx/ss

然后我们需要将ss-panel中的数据库导入我们刚刚创建的数据库中,还是进入MySQL:

1
2
3
4
5
6
7
8
root@ubuntu-512mb-sfo1-01:~# mysql -u root -p
mysql> use shadowsocks;
mysql> source /usr/share/nginx/ss/sql/invite_code.sql;
mysql> source /usr/share/nginx/ss/sql/ss_user_admin.sql;
mysql> source /usr/share/nginx/ss/sql/ss_node.sql;
mysql> source /usr/share/nginx/ss/sql/ss_reset_pwd.sql;
mysql> source /usr/share/nginx/ss/sql/user.sql;
mysql> exit;

然后我们来修改配置文件

1
2
root@ubuntu-512mb-sfo1-01:~# cd /usr/share/nginx
root@ubuntu-512mb-sfo1-01:~# mv /usr/share/nginx/ss/lib/config-simple.php /usr/share/nginx/ss/lib/config.php

以下是congfig.php文件的内容我们可以针对自己的需求来修改,重点先修改

1
2
3
4
5
6
7
//Define DB Connection  数据库信息
define('DB_HOST','localhost');
define('DB_USER','ss'); # 我们最开始创建的 ss 用户
define('DB_PWD','ss'); # ss 用户的数据库密码
define('DB_DBNAME','shadowsocks'); # 数据库名字
define('DB_CHARSET','utf8');
define('DB_TYPE','mysql');

完整的配置文件

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<?php
/*
* ss-panel配置文件
* https://github.com/orvice/ss-panel
* Author @orvice
* https://orvice.org
*/

//定义流量
$tokb = 1024;
$tomb = 1024*1024;
$togb = $tomb*1024;
//Define DB Connection 数据库信息
define('DB_HOST','localhost');
define('DB_USER','ss'); #
define('DB_PWD','ss');
define('DB_DBNAME','shadowsocks');
define('DB_CHARSET','utf8');
define('DB_TYPE','mysql');
/*
* 下面的东西根据需求修改
*/

//define Plan
//注册用户的初始化流量
//默认5GiB
$a_transfer = $togb*5;

//签到设置 签到活的的最低最高流量,单位MB
$check_min = 1;
$check_max = 100;

//name
$site_name = "ss-panel";
$site_url = "https://panel.com/";
/**
* 站点盐值,用于加密密码
* 第一次安装请修改此值,安装后请勿修改!!否则会使所有密码失效,仅限加密方式不为1的时候有效
*/
$salt = "ss-panel";
/**
* 密码加密方式,注意: 2.4以前的版本,请修改加密方式为「1」,否则会使密码失效!
* 更多说明见wiki https://github.com/orvice/ss-panel/wiki/Install-Guide-zh_cn
* 加密方式:
* 1 md5
* 2 带salt的Sha256加密,新安装建议使用此加密方式!
*/
$pwd_mode = 1;

//用户注册后获得的邀请码最低最高
//都设置为0用户就不能邀请
$user_invite_min = '1';
$user_invite_max = '1';


//
//选择邮件服务
// smtp未完成,现在只能用mailgun
//mail-gun
//mail-smtp
$Selectmailservice = "mail-gun";
//邮件发件人
$sender = "[email protected]";

//mail-gun
// Get your key from https://mailgun.com
$mailgun_key = "";
$mailgun_domain = "";


//
//mail-smtp
// smtp发件方式暂时无法使用
//设置smtp服务器连接方式:
//加密连接(ssl) = "1"
//普通连接 = "0"
$mail_smtp_Connection = "1";
//smtp服务器端口 25 , 465 ...
$mail_smtp_Port = 465;
//smtp服务器
$mail_smtp_Server = "smtp.gmail.com";
//邮件帐号
$mail_smtp_Account = "[email protected]";
//邮件密码
$mail_smtp_password = "密码";



//
require_once 'do.php';

到此,ss-panel前端界面也安装完毕,然后我们需要修改一下Nginx配置文件,

1
2
root@ubuntu-512mb-sfo1-01:~# cd /etc/nginx/sites-available/
root@ubuntu-512mb-sfo1-01:~# vim default

把default文件修改成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server {
listen 443;
server_name localhost;
server_name_in_redirect off;
root /usr/share/nginx/ss;
index index.php index.html index.htm;

location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}

location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/ss$fastcgi_script_name;
}
}

然后重启一下

1
root@ubuntu-512mb-sfo1-01:~# shutdown -r now

然后我们访问http://ip:443就可以看到ss-panel前端界面了:

后端我们可以http://ip:443/admin界面如下

如果不知道账户名,密码的话,我们可以去数据库查一下,我们可以登录数据库中,看一下shadowsocks库中的表

我们可以查一下ss_user_admin表和user看一下管理员和用户,然后登录后台,进行相应地操作。如果要设置新的管理员,我们可以再导入 user.sql 之前修改里面的信息

user.sql

或者我们直接写 SQL 语句来修改,mysql -u root -p,进入 mysql,切换 DataBase为 shadowsocks,执行下面的 SQL 预计即可

1
UPDATE user SET user_name = 'user_name', email = '邮箱', pass = 'md5-32位小写';

然后通过http://ip:443/admin登录

到此,ss前后台管理多用户的分享平台就这样建成了。