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
共有 0 条评论