shadowsocks多服务器多用户搭建教程

采取Shadowsocks Manyuser + SS-Panel方案,环境debian。
不包含防火墙安全以及优化的相关配置。
一,中心服务器搭建(lnmp+ss+ss-Panel
1,lnmp
由于是debian环境,简单的包安装即可。(PHP版本>=5.3 MYSQL>=5.0)。
有的vps系统默认版本自带了不需要的sendmail、apache等等,可以进行清理。

1
2
3
4
5
invoke-rc.d sendmail stop > /dev/null 2>1&
apt-get -q -y remove --purge sendmail* apache2* portmap samba* nscd bind9*
apt-get -q -y autoremove
apt-get -q -y autoclean
apt-get -q -y clean

如果新系统的话,再进行更新系统。

1
apt-get update && apt-get upgrade -y

安装lnmp环境。

1
DEBIAN_FRONTEND=noninteractive apt-get install -y -q nginx-full php5-cli php5-fpm php5-gd php5-mysqlnd php5-curl mysql-server mysql-client

a,配置nginx
注释掉/etc/nginx/sites-enabled/default中的配置,也可以直接删掉。
在/etc/nginx/conf.d/文件夹下,创建后缀为.conf的任意文件,写入下面内容。

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
server {
    listen 80;
    #ss.com 替换成自己的域名或ip
    server_name ss.com;
    #下面是网站存放的绝对路径,自定义。
    root /var/www;
    index index.html index.htm index.php;
    client_max_body_size 32m;
    access_log  off;
    error_log  off;
    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
        access_log off;
}
    location / {
        index index.html index.php;
        try_files $uri $uri/ =404;
        if (-f $request_filename/index.html){
            rewrite (.*) $1/index.html break;
        }
        if (-f $request_filename/index.php){
            rewrite (.*) $1/index.php;
        }
        if (!-f $request_filename){
            rewrite (.*) /index.php;
        }
    }
    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }
    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }
    location ~ ^(.+?\.php)(/.*)?$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        include fastcgi_params;
#        fastcgi_param HTTPS on;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
    }
    location ~ /\.ht {
        deny  all;
    }
}

创建文件夹,启动或者重启nginx。

1
2
3
mkdir -p /var/www
/etc/init.d/nginx stop
/etc/init.d/nginx start

b,配置mysql
由于刚才的安装默认root用户密码为空,要先进行设置。(务必确认mysql已经启动)

1
mysqladmin -u root password "12345678"

这里的12345678换成自定义的mysql的root用户密码。
创建名字为shadowsocks的数据库以及用户,并给与相应的权限。

1
2
mysqladmin create "shadowsocks"
echo "GRANT ALL PRIVILEGES ON \`shadowsocks\`.* TO \`shadowsocks\`@\`%\` IDENTIFIED BY '999';" | mysql

上面的999是数据库shadowsocks用户的密码,自定义。请不要与root用户密码相同。
为了方便,直接下载合成的数据库。

1
wget https://raw.githubusercontent.com/fanyueciyuan/eazy-for-ss/master/Our-Private-Panel/shadowsocks.sql

根据自己需要事先修改shadowsocks.sql。
由于登录网站的密码储存是md5加密的,所以修改登录网站密码需要先进行加密。
把25d55ad283aa400af464c76d713c07ad 这些字符串修改成密码加密后的字符串;
Our_Private_Panel_Domain 这些字符串修改成自己的ip或者域名;
Our_Private_Panel 这些字符串修改成登录网站用户名;
My_Passwd 这些字符串修改成ss连接密码,这里是明文的。
还可以参考下面的命令进行修改,

1
2
3
4
5
6
7
8
9
username="登录网站用户名"
password="登录网站明文密码"
My_Domain="自己的ip或者域名"
ss_mypassword="ss连接密码"
Panel_Admin_Passwd=`echo -n "$password"|md5sum|cut -d ' ' -f1`
sed -i "s/25d55ad283aa400af464c76d713c07ad/$Panel_Admin_Passwd/" shadowsocks.sql
sed -i "s/Our_Private_Panel_Domain/$My_Domain/" shadowsocks.sql
sed -i "s/Our_Private_Panel/$username/" shadowsocks.sql
sed -i "s/My_Passwd/$ss_mypassword/" shadowsocks.sql

然后导入数据库,

1
mysql shadowsocks < ./shadowsocks.sql

由于数据库是作为中心数据库,所以mysql得监听外网。编辑 /etc/mysql/my.cnf文件中的bind-address = 127.0.0.1为0.0.0.0
重启一下mysql。

1
2
/etc/init.d/mysql stop
/etc/init.d/mysql start

2,ss manyuser
安装依赖,获取ss manyuser。

1
2
3
apt-get install -y -q build-essential autoconf libtool libssl-dev git python-pip python-m2crypto supervisor
pip install cymysql
git clone -b manyuser https://github.com/mengskysama/shadowsocks.git

进入shadowsocks进行配置

1
cd shadowsocks/shadowsocks

编辑Config.py 中的下面行列

1
2
3
4
5
MYSQL_HOST = '127.0.0.1'
MYSQL_PORT = 3306
MYSQL_USER = 'shadowsocks'
MYSQL_PASS = '999'
MYSQL_DB = 'shadowsocks'

其中999是自定义的shadowsocks数据库密码。
至于配置里面的MANAGE_PASS相关行列,不需要配置,我们这里是ss-panel==mysql中心数据库==多ss-manyuser模式。
由于当前版本的ss加密方式是从config.json文件里面读取的,需要进行单独设置。命令如下

1
sed -i 's/\(.*meth.*:\).*/\1"aes-128-cfb"/' config.json

为了方便,把需要文件都放到/etc/shadowsocks-manyuser文件夹下,删掉其他不必要东西。

1
2
3
4
5
mkdir -p /etc/shadowsocks-manyuser
mv * /etc/shadowsocks-manyuser
cd ..
cd ..
rm -r shadowsocks

为了进程守护,创建/etc/supervisor/conf.d/shadowsocks-manyuser.conf文件,并写入下面的东西。

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

然后,

1
echo 'ulimit -n 51200' >>  /etc/default/supervisor

接着重启supervisor并且重新载入

1
2
3
/etc/init.d/supervisor stop
/etc/init.d/supervisor start
supervisorctl reload

3,ss-panel
这里先进入网站根目录,这里是/var/www,并获取ss-panel。

1
2
cd /var/www
git clone https://github.com/orvice/ss-panel.git

进入ss-pane文件夹,删掉ss-panel文件夹下的 sql文件夹和.git* 相关文件,把所有文件移动到网页根目录下。

1
2
3
4
5
cd ss-panel
rm -r sql && rm -rf .git*
mv * /var/www/
cd ..
rm -r ss-panel

修改lib/config-sample.php(里面填写你的shadowsocks数据库信息,以及域名信息)并改为config.php。
这里是

1
2
3
4
5
define('DB_USER','shadowsocks');
define('DB_PWD','999');
define('DB_DBNAME','shadowsocks');
...
$site_url  = "http://域名或ip/";

然后把相关文件所有者变更为网页用户。

1
chown -R www-data.www-data /var/www

由于这里还需要每月定时流量清零,修改tools/reset_transfer.php里面的日期,根据需要修改成自己需要流量清零的日期,默认是每月1号。
然后加入计划任务

1
echo "1 1 1-31 * * root cd /var/www/tools && /usr/bin/php -f cron.php" >>/etc/crontab

需要注意的是,直接通过网页访问cron.php,也会造成流量清零。也就是说在每月的流量清零日不停访问cron.php,会不停的流量清零。
二,其他ss服务器搭建(ss-manyuser)
根据 一,2,ss manyuser 进行配置,把MYSQL_HOST = '127.0.0.1'中的127.0.0.1修改成数据库所在vps的ip即可。
三,网页管理
面板管理访问http://域名或者ip/admin/
用户访问http://域名或者ip/
这里初始用户和管理员的用户名以及密码是一样的,如果是导入了前面的数据的话。
四,参考
http://www.bxl.me/zh-cn/8625.html
http://www.bxl.me/zh-cn/8625.html
http://www.bxl.me/8613.html
http://ilazycat.com/posts/tag/ss-panel
http://blog.liujason.com/archives/2669
 

版权声明:
作者:admin
链接:https://www.bttme.com/archives/618.html
来源:bttme
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>