ss多服务器多用户搭建简要备忘
采取Shadowsocks Manyuser + SS-Panel方案,环境debian。
不包含防火墙安全以及优化的相关配置。
一,中心服务器搭建(lnmp+ss+ss-Panel)
1,lnmp
由于是debian环境,简单的包安装即可。(PHP版本>=5.3 MYSQL>=5.0)。
有的vps系统默认版本自带了不需要的sendmail、apache等等,可以进行清理。
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
如果新系统的话,再进行更新系统。
apt-get update && apt-get upgrade -y
安装lnmp环境。
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的任意文件,写入下面内容。
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。
mkdir -p /var/www
/etc/init.d/nginx stop
/etc/init.d/nginx start
b,配置mysql
由于刚才的安装默认root用户密码为空,要先进行设置。(务必确认mysql已经启动)
mysqladmin -u root password "12345678"
这里的12345678换成自定义的mysql的root用户密码。
创建名字为shadowsocks的数据库以及用户,并给与相应的权限。
mysqladmin create "shadowsocks"
echo "GRANT ALL PRIVILEGES ON \`shadowsocks\`.* TO \`shadowsocks\`@\`%\` IDENTIFIED BY '999';" | mysql
上面的999是数据库shadowsocks用户的密码,自定义。请不要与root用户密码相同。
为了方便,直接下载合成的数据库。
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连接密码,这里是明文的。
还可以参考下面的命令进行修改,
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
然后导入数据库,
mysql shadowsocks < ./shadowsocks.sql
由于数据库是作为中心数据库,所以mysql得监听外网。编辑 /etc/mysql/my.cnf
文件中的bind-address = 127.0.0.1
为0.0.0.0
,重启一下mysql。
/etc/init.d/mysql stop
/etc/init.d/mysql start
2,ss manyuser
安装依赖,获取ss manyuser。
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进行配置
cd shadowsocks/shadowsocks
编辑Config.py 中的下面行列
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文件里面读取的,需要进行单独设置。命令如下
sed -i 's/\(.*meth.*:\).*/\1"aes-128-cfb"/' config.json
为了方便,把需要文件都放到/etc/shadowsocks-manyuser文件夹下,删掉其他不必要东西。
mkdir -p /etc/shadowsocks-manyuser
mv * /etc/shadowsocks-manyuser
cd ../../
rm -r shadowsocks
为了进程守护,创建/etc/supervisor/conf.d/shadowsocks-manyuser.conf
文件,并写入下面的东西。
[program:shadowsocks-manyuser]
command=python /etc/shadowsocks-manyuser/server.py -c /etc/shadowsocks-manyuser/config.json
autostart=true
autorestart=true
然后,
echo 'ulimit -n 51200' >> /etc/default/supervisor
接着重启supervisor并且重新载入
/etc/init.d/supervisor stop
/etc/init.d/supervisor start
supervisorctl reload
3,ss-panel
这里先进入网站根目录,这里是/var/www,并获取ss-panel。
cd /var/www
git clone https://github.com/orvice/ss-panel.git
进入ss-pane文件夹,删掉ss-panel文件夹下的 sql文件夹和.git* 相关文件,把所有文件移动到网页根目录下。
cd ss-panel
rm -r sql && rm -rf .git*
mv * /var/www/
cd ..
rm -r ss-panel
修改lib/config-sample.php
(里面填写你的shadowsocks数据库信息,以及域名信息)并改为config.php
。
这里是
define('DB_USER','shadowsocks');
define('DB_PWD','999');
define('DB_DBNAME','shadowsocks');
...
$site_url = "http://域名或ip/";
然后把相关文件所有者变更为网页用户。
chown -R www-data.www-data /var/www
由于这里还需要每月定时流量清零,修改tools/reset_transfer.php
里面的日期,根据需要修改成自己需要流量清零的日期,默认是每月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
上一篇 : youtube-dl you-get 安装备要 下一篇 : GoA VPS 部署试玩
已有 9 条评论
路过赞一赞
博主,请教一下manyuser我想修改加密方式为chacha20可是运行的时候提示不支持此种加密怎么办呢?
嗯 https://github.com/mengskysama/shadowsocks-rm
manyuser的新地方。
这个地址打不开!
https://github.com/mengskysama/shadowsocks-rm/tree/manyuser
不好意思,少了东西。
非常感谢!
PS:启动B VPS的服务端曾出现过mysql 110和1130错误,我修改A VPS的my.cnf注释了bind = 127.0.0.1,也修改了从远程访问的权限,解决了这两个错误
ss加密方式是从config.json文件里面读取的,而非数据库。需要进行单独设置。
你好,我在A VPS上安装了ss-panel/manyuser、apache和mysql,也能正常使用。现在我在B VPS上安装了ss-manyuser,在Config.py填写了A VPS的IP、帐号密码、数据库名称。服务端看似启动成功,出现了db start server at port [%s] pass [%s]等信息,但是客户端连接B VPS后不能上网。