lala.im:多用户SS管理面板:XS Admin Project详细安装教程

運維技術·VPN代理·lala.im · 2017-10-24 · 127 人浏览

原文地址:https://lala.im/1508.html,請支持原作者!該處僅作轉載。

有一段时间没写这类教程文章了,正好这两天折腾了一下这个叫XS Admin Project的SS面板程序(以下简称xsadmin)。在我搭建完毕并测试功能正常后,决定把这个xsadmin的安装方法写一写。
稍微介绍一下这个面板的组成部分,xsadmin是基于Django开发的,和之前我介绍给大家的django-sspanel所需要的环境相似。xsadmin支持多节点、多用户以及流量统计和控制。程序界面比较好看,但整个面板的功能相对于我之前在荒岛博客上介绍的其他面板而言,功能就少很多了,并且搭建过程非常复杂!
说在前面:
搭建和使用xsadmin这款面板,你务必需要有一定的Linux的基础,以及对SS和SSR的基本理解,因为这款面板的搭建着实很麻烦。如果你不是特别熟悉这些领域,但是又特别想拥有一个自己的SS站点或者是机场,LALA建议你们使用下面这篇文章来安装另外一款叫:django-sspanel的程序。因为这款程序相对xsadmin来说要简单许多,遇到的坑也会少很多。
全新的shadowsocks网络面板:django-sspanel

如果你对这款SS面板程序也不是特别看好,可以在本站上搜索更多相关的面板程序,相信你能在荒岛博客找到一款合适自己的SS面板程序。
准备工作:
1、一台内存最好大于1GB的VPS,这款程序比较吃内存,512MB跑的很吃力。
2、VPS系统安装CentOS6X64位
开始教程:
使用Xshell登录你的VPS,首先来查看一下我们的VPS全局语言环境,确保在接下来的安装过程中不会出现乱七八糟的错误。
执行:

locale

看到我这台VPS的语言环境不知道为什么都是C

範例
xsadmin运行必须要是UTF-8,所以我们编辑系统的语言配置文件

vi /etc/sysconfig/i18n(如果是CentOS7,配置文件在/etc/locale.conf)

将LANG后面的参数改成en_US.UTF-8保存。重启VPS后再查看是否将语言环境更换过来了。

reboot
locale

现在就正常了:

範例
xsadmin的正常工作,需要运行特别多的文件和进程,所以我们先安装一个supervisor用来管理待会xsadmin的各种进程

yum -y install python-setuptools
easy_install supervisor

生成supervisor配置文件:

echo_supervisord_conf > /etc/supervisord.conf

给supervisor创建开机启动:

wget https://github.com/Supervisor/initscripts/raw/master/redhat-init-mingalevme
mv redhat-init-mingalevme /etc/init.d/supervisord
chmod +x /etc/init.d/supervisord
chkconfig supervisord on
service supervisord restart

xsadmin是django项目,需要配置Python环境,并且xsadmin指定了必须要Python3.6以上,而CentOS无论是6还是7都无法满足这个条件,所以我们现在使用Pyenv来安装一个Python3.6.0
拉取pyenv项目

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

设置环境变量

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile

增加pyenv init到SHELL:

echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

令其生效:

exec "$SHELL"
source ~/.bash_profile

安装Python所需的相关依赖:

yum -y install gcc
yum -y install make
yum -y install zlib zlib-devel
yum -y install readline readline-devel readline-static
yum -y install openssl openssl-devel openssl-static
yum -y install sqlite-devel
yum -y install bzip2-devel bzip2-libs

安装Python3.6.0:

pyenv install 3.6.0

安装完成后输入:

pyenv versions

回显内容有你刚安装的Python版本号就说明安装成功。
继续来安装virtualenv

git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
exec "$SHELL"

安装完成后来创建一个xsadmin的独立运行环境:

pyenv virtualenv 3.6.0 venv-xsadmin

现在来安装宝塔WEB面板:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh

面板安装好后,安装一个LNMP环境,组件如图选择即可:

範例
xsadmin还需要redis作为中间件,所以我们也安装一下:

範例
点击宝塔面板中的网站,新建一个站点:

範例
添加你的站点域名后什么都不要改动,直接点提交:

範例
接着点击宝塔面板中的数据库栏目,打开phpmyadmin创建一个数据库:

範例
注意这个数据库的编码一定要是utf8_general_ci
现在回到Xshell中来进入你的站点根目录:

cd /www/wwwroot/你在宝塔上添加的域名

拉取xsadmin相关项目:

git clone https://github.com/alishtory/xsadmin_deploy.git tmp && mv tmp/.git . && rm -rf tmp && git reset --hard
git clone https://github.com/alishtory/xsadmin.git

使用Pyenv将当前目录的环境设置为我们刚才创建的Python3.6.0环境:

pyenv local venv-xsadmin

进入xsadmin目录:

cd xsadmin

安装依赖:

pip install -r requirements.txt

看到类似如图回显就说明依赖安装完成了:

範例
回到宝塔面板中编辑settings_custom.py:

/www/wwwroot/你在宝塔上添加的域名/xsadmin/xsadmin/settings_custom.py

在这个文件中先添加你的站点域名和填写数据库信息:

範例
填完后往看下到如图内容,按着图中的说明填写:

範例
这里要注意的是这个静态文件目录,如果你们是完完全全按照我这篇文章中来搭建的,那么这里的这两个路径就是这样子的:

/www/wwwroot/你在宝塔上添加的域名/static/
/www/wwwroot/你在宝塔上添加的域名/upload/

全部都确定填写正确后,现在回到Xshell中来同步数据库:

python manage.py migrate

看到如图回显说明同步成功:

範例
现在来创建站点的管理员账号:

python manage.py createsuperuser

按提示来填写你的账号信息,注意密码那里是盲打,终端不显示的。
然后同步静态资源文件:

python manage.py collectstatic

现在回到宝塔面板中,打开如下路径:

/www/wwwroot/你在宝塔上添加的域名/conf

找到如图这几个文件:

範例
现在先回到Xshell中,找一下我们刚创建的Python3.6.0环境目录。
输入命令:

pyenv versions

回显:

範例
可以看到如图回显的内容中有两个关键信息:
一是pyenv默认安装的Python路径/root/.pyenv/version
二是我们刚才创建的Python3.6.0的运行环境路径3.6.0/envs/venv-xsadmin
组合一下我们的Python3.6.0的完整路径应该就是:/root/.pyenv/versions/3.6.0/envs/venv-xsadmin/
那么在这个路径下ls或者ll看一下,有bin目录:

範例
cd进去就可以看到我们需要的东东了:

範例
其实直接在/root/.pyenv/versions/下面ll看一下也能大概知道这个路径:

範例
那么综合上述所说最终我们可以用来执行命令的路径就是:

/root/.pyenv/versions/3.6.0/envs/venv-xsadmin/bin/

如果你是按照我这篇文章一步步走过来的,这个路径你不用再去寻找了,和我写出来的这个应该是一模一样的。可怜的我很少用pyenv,这个死妈路径找了我快半天。。。有人会问,费劲心思要这个路径干嘛?接下来你就知道了。
现在我们回到宝塔面板中来对刚才我让你们找的这几个文件进行配置。先来编辑supervisor_celery_beat.ini
将:

/data/xsadmin_deploy/env/bin/

改为:

/root/.pyenv/versions/3.6.0/envs/venv-xsadmin/bin/

将:

/data/xsadmin_deploy/xsadmin

改为:

/www/wwwroot/你在宝塔上添加的域名/xsadmin

将:

/data/xsadmin_deploy/

改为:

/www/wwwroot/你在宝塔上添加的域名/

修改完成后如图所示:

範例
同理我们来修改supervisor_celery_worker.ini,修改完成后如图所示:

範例
最后我们来修改supervisor_uwsgi_xsadmin.ini,修改完成后如图所示:

範例
还没完,现在我们找到这个路径:

/www/wwwroot/你在宝塔上添加的域名/xsadmin

找到这个路径下面的uwsgi.ini配置文件,编辑它:
将:

socket = /var/run/xsadmin.sock

改为:

127.0.0.1:8080

将:

home  = /data/xsadmin_deploy/env

改为:

home  = /root/.pyenv/versions/3.6.0/envs/venv-xsadmin

将:

chdir = /data/xsadmin_deploy/xsadmin

改为:

chdir = /www/wwwroot/你在宝塔上添加的域名/xsadmin

最后修改完毕后如图所示:

範例
现在回到Xshell中去,来配置supervisor:

vi /etc/supervisord.conf

翻到这个配置文件的最下面找到[include],插入如下内容:

files = /www/wwwroot/你在宝塔上添加的域名/conf/supervisor_*.ini

如图所示:

範例
关闭CentOS的防火墙:

service iptables stop

重启supervisor:

service supervisord restart

查看supervisor管理的进程运行状态:

service supervisord status

看到如图所示的celery_beat、celery_worker、uwsgi_xsadmin都是RUNNING状态:

範例
ssserver这个我们稍后配置,这是SS后端服务的进程。教程这里,LALA就先略过,因为图片是后截的。
现在我们回到宝塔面板中给站点设置伪静态,规则如下:

location /upload {
    alias /www/wwwroot/你在宝塔上添加的域名/upload;
    expires 30d;
    access_log off;
  }

  location /static {
    alias /www/wwwroot/你在宝塔上添加的域名/static;
    expires 30d;
    access_log off;
  }

location / {
     uwsgi_pass 127.0.0.1:8080;
     include uwsgi_params;
  }

如图所示:

範例
现在打开你的浏览器,不出意外的话,就能看到这款SS面板的真面目了:

範例
至此,整个前端面板的安装就算是告一段落了,接下来是后端服务。需要注意的是这个面板的后端也和别的有点与众不同。
首先还是按照常规方法安装libsodium来支持更多的加密方式:

cd /root
yum -y groupinstall "Development Tools"
wget https://github.com/jedisct1/libsodium/releases/download/1.0.10/libsodium-1.0.10.tar.gz
tar xf libsodium-1.0.10.tar.gz && cd libsodium-1.0.10
./configure && make -j2 && make install
echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf
ldconfig

安装依赖:

pip install requests

拉取项目:

git clone -b manyuser https://github.com/alishtory/shadowsocksr.git

进入到shadowsocksr目录:

cd shadowsocksr

打开浏览器登录你的xsadmin后台:

範例
右上角点击“后台”管理:

範例
添加一个节点:

範例
填写节点基本信息:

範例
点击下面的更多信息,来填写这些混淆啊协议啊什么的,建议设置成如图所示:

範例
点击进入我们刚添加的这个节点:

範例
找到右上角的API配置信息:

範例
点击进入后可以看到user-config.json配置信息以及config_xsadmin.py的配置信息:

範例
回到Xshell中,确定你现在正处于shadowsocksr目录中。
复制你在网页上看到的user-config.json配置信息,新建一个user-config.json配置文件,并粘贴所有内容:

vi user-config.json

如图:

範例
接着复制你在网页上看到的config_xsadmin.py配置信息,新建一个config_xsadmin.py配置文件,并粘贴所有内容:

vi config_xsadmin.py

如果这个文件已经存在,那么就直接把里面的信息修改成你的就行了。
接着执行下面的命令,将xsadmin_server.py的进程交给supervisor管理

cat<< EOF >> /etc/supervisord.conf
[program:ssserver]
command = python /root/shadowsocksr/xsadmin_server.py
directory = /root/shadowsocksr
user = root
autostart = true
autorestart = true
redirect_stderr=true
stdout_logfile = /root/shadowsocksr/ssserver.log
EOF

重启supervisor:

service supervisord restart

查看supervisor的管理的进程状态:

service supervisord status

你应该可以看到4个进程:

範例
这样就说明运行是完全正常的!
此时我们回到面板的用户中心可以看到刚才我们添加的节点:

範例
点击节点连接信息可以看到详细的配置信息:

範例
至此,这个面板的整个搭建过程就算是大功告成了!
最后甩两张这个面板的用户中心截图:

範例

範例
总结:
在我搭建完成这个xsadmin后,我的第一感觉就是被作者坑了,作者在Github上面截图的程序界面中显示的功能和我搭建完成后的功能相差太多,像作者截图中的“付费计划”、“我的计划”、“捐赠送流”、“推介有礼”这些功能都没有,似乎作者是放了一个阉割版的xsadmin在Github上开源?然后说好的持续更新,我看了一下已经大半年没更新了,怕不是这个项目已经烂尾了。。。
真的毫不夸张的说,这个SS面板是我搭建过的所有SS面板中,有史以来的第一个:“搭建最麻烦,功能最单一”的面板。到头来感觉就是花了最大的力气,结果获得的回报反而还是最小的。所以LALA极其不推荐大家使用这款面板。

運維技術 VPN代理 lala.im
Theme Jasmine by Kent Liao