Friday, April 29, 2016

[整理]通过ss-panelv3调用shadowsocks-go管理多用户

由于SS-panel V3增加了一些功能,但是调用传统的shadowsocks manyuser无法实现一些功能,所以可以通过shadowsocks-go来实现这些功能,下面是整理的一些安装信息。

ss-panelv3安装基本上很简单,需求git组件,默认Centos6带的是1.7.1但是不利于后文ss-go的安装,所以我们这里直接编译安装最新的版本,截止到文章是2.2.1.如果你之前已经用yum install git 命令安装了老版本,那么需要先卸载

基础组件安装:

安装:

yum -y install gcc automake autoconf libtool make

安装g++:

yum install gcc gcc-c++

yum install zlib-devel

yum remove git

yum openssl-devel

yum expat-devel

yum gettext-devel

yum asciidoc

yum xmlto

yum install perl-ExtUtils-MakeMaker

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel   //检查是否有遗漏

然后开始安装:

># wget http://ift.tt/1TdpgLJ

># tar zxvf v2.2.1.tar.gz

># cd git-2.2.1

># make configure

># ./configure –prefix=/usr/local/git –with-iconv=/usr/local/libiconv

># make all doc

># make install install-doc install-html

># echo “export PATH=$PATH:/usr/local/git/bin” >> /etc/bashrc

# source /etc/bashrc

如果还不行,尝试重新编译:

wget http://www.codemonkey.org.uk/projects/git-snapshots/git/git-latest.tar.gz
tar xzvf gitlatest.tar.gz
cd git20111130 #你的目录可能不是这个
autoconf
./configure
make
sudo make install

查看版本号

># git –version

# git –version >git version 2.2.1

安装完毕

然后开始安装ss-panel

Step 0

git clone http://ift.tt/1TOsIB3    //下载程序包

Step 1

$ curl -sS http://ift.tt/SI3ujS | php   //获取composer包
$ php composer.phar  install    //安装

Step 2

cp .env.example .env    /更改配置文件

then edit .env

chmod -R 777 storage     //更改权限

Step 3

Import the sql to you mysql database.    //导入ss-panel目录内的数据库文件到你的mysql数据库中,具体怎么操作,这里就不再赘述了

Step 4

Nginx Config example:                                    //去nginx配置目录下写入重定向规则

if you download ss-panel on path /home/www/ss-panel     //如果你的ss-panel目录是/home/www/ss-panel的话,那么就在下面的配置中写入相应的目录后面别忘了加上真正目录/public

root /home/www/ss-panel/public;

location / {
    try_files $uri $uri/ /index.php$is_args$args;
}


Step 5

在相应的ss-panel目录修改文件权限chown -R www /home/www/ss-panel            //相对应去修改你自己的目录

Step 6

ss-panel v3 配置说明,请根据说明合理选择密码加密方式,认证方式等。

修改站点以及数据库配置都在:

vim .env

Auth Driver 认证设置

ss-panel v3支持多种存储用户认证信息的方式:

  • cookie 同v2的认证方式,不推荐。
  • redis 使用Redis存储,推荐此方式。

推荐使用redis

安装Redis

如果你是使用lnmp搭建的网站环境,进入lnmp解压后的目录,执行:./addons.sh install redis 来安装。很方便。
如果是centos  使用 yum install redis

密码加密方式

  • md5 不推荐
  • sha256 推荐

添加管理员

在网站根目录下执行

php xcat createAdmin

根据提示创建管理员帐号。

创建成功后登录可以在域名/admin进行管理

重置流量

php xcat resetTraffic


注意

如果都设置好了,运行网站测试的时候提示出现一个应用程序错误。是因为你没安装redis,并且.env文件默认的参数authDriver = ‘redis’ ,只要去安装redis就正常了。

 

这样ss-panel前端环境就搭建好了,下面进入后端shadowsocks-go的安装:

由于ss-go是用go语言写的,所以我们要下载go语言环境:http://ift.tt/1ubc6rU 这是源码包地址

wget -c http://ift.tt/1SPfFNP; //根据你的系统版本选择相应的环境包
tar -C /usr/local -xzf go1.6.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
export GOPATH=~/.go

接下来安装ss-go mu

go get http://ift.tt/1VX5Hhs; 或者使用 git clone git://github.com/orvice/shadowsocks-go
cd ~/.go/src/http://ift.tt/1TdpimI
go get
go build
cp example.conf ~/.go/bin/config.conf
vim ~/.go/bin/config.conf

[base]
N 1
ip 0.0.0.0
client webapi
checktime 60
synctime 60

[webapi]
url http://ift.tt/1SPfEt4; /你的域名,后面别忘了跟mu
key xxxx                你的ss-panel .env文件的key秘钥
node_id 1

[mysql]
host 127.0.0.1:3306
user user
pass pass
db db
table table

[redis]
host localhost:6379
# if no passwd set,comment this line
#pass “”             //这里注释掉
#db 1

接下来开启go

cd ~/.go/bin/

./mu

如果不出意外,就看到正常的启动界面了。如果出错可以使用

./mu -debug

查看相关的错误信息

这样的话就把前端的和后端关联起来,我们的目的就达到了,下面是添加守护进程,常住后台:

 

安装easy_install supervisor
运行echo_supervisord_conf
测试是否安装成功。
创建配置文件:

echo_supervisord_conf > /etc/supervisord.conf
修改配置文件:
在supervisord.conf最后增加:

[program:shadowsocks]
command = /root/.go/bin/mu
directory = /root/.go/bin/
user=root
autostart=true
autorestart=true
stderr_logfile = /var/log/shadowsocks.log
stdout_logfile = /var/log/shadowsocks.log
startsecs=3

使用指定配置文件启动:/usr/bin/supervisord -c /etc/supervisord.conf
-c 表示配置文件的路径,读取这里个配置文件,之前也是可以根据自己的情况放在不同的文件夹下
修改配置文件之后:supervisorctl reload 重载 服务重新启动
debug查看连接日志:
supervisorctl tail -f shadowsocks stderr
 #Ctrl+C 取消查看
设置supervisord开机启动
编辑文件:vi /etc/rc.local
在末尾另起一行添加supervisord,保存退出(和上文类似)。
另centos7还需要为rc.local添加执行权限
chmod +x /etc/rc.local
至此运用supervisord控制shadowsocks开机自启和后台运行设置完成
常用命令
控制命令基本都通过supervisorctl执行,输入help可以看到命令列表。这是一些常用命令:
获得所有程序状态 supervisorctl status
关闭目标程序 supervisorctl stop shadowsocks
启动目标程序 supervisorctl start shadowsocks
关闭所有程序 supervisorctl shutdown

正常查看日志为supervisorctl tail -f shadowsocks stderr,可是有些懒人觉得太长,那么我们就精简一下吧,利用linux自带的alias功能

vim ~/.bashrc

添加一行

alias xxxxx=’supervisorctl tail -f shadowsocks stderr’    //这里的xxxxx是你自定义的命令,只要不和已有的命令冲突即可。

保存退出后,正常需要登出才会生效,这里我们输入:

source ~/.bashrc         //直接把命令导入到我们的环境中

这样以后直接输入xxxxx就可以显示后台的日志了。

ok 就是这样,enjoy it!

 

此文参考:http://ift.tt/1SrGUz4 http://ift.tt/1TdpimK http://ift.tt/1SrGY1D http://ift.tt/1Tdph2e

原文:http://ift.tt/1SrGUiz




via 细节的力量 http://ift.tt/1VX5HxO

No comments:

Post a Comment