系统之家
您现在的位置是:系统之家 > Linux之家 > Linux入门 > 内容 RSS

史上最详细最全面的ss-panel部署教程

时间:2017-03-13 出处:系统之家 复制分享 人气(次) 【

今天弄了一下的ss-panel,看见网上好多教程,基本上都不太全。折腾了好久,终于弄好了,于是打算写一篇文章分享一下!

本教程面向新手,不过还是希望读者有一定的Linux操作经验,有搭建服务器的经验那就更好了!废话不多说,我们开始:

 

基本环境搭建:

系统版本:ubuntu16.04

 

安装 LNMP

LNMP 是常用的 web 环境 Linux, Nginx, MySQL, PHP 的统称。如果你已经配置完成了环境可以直接跳过这一步。网络上有一些自动安装的脚本,不过在这里我主要介绍一下手动安装各个部件。

 

NGINX

安装 Nginx 没啥难度,直接用包管理就好。如果你需要更多的模块得自己编译,当然这就不是我们的讨论范围了。

sudo apt-get update  

sudo apt-get install nginx  

Finished.

 

MySQL

同理,直接用包管理就好。

sudo apt-get install mysql-server  

安装过程中会让你设置数据库管理员密码,照做就好。

 

PHP

Ubuntu 自带的 PHP 版本太老了,所以得安装最新的 PHP 7。稍微麻烦一点。

添加 PPA:

sudo add-apt-repository ppa:ondrej/php  

如果有乱码,试试下面的这个:

sudo apt-get install language-pack-en-base  

sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php  

完了就开始装吧。

sudo apt-get update  

sudo apt-get install php7.0 php7.0-fpm php7.0-mysql php7.0-gd php7.0-curl php7.0-mbstring php7.0-dom 

 

部署 SS-Panel 前端

下载 ss-panel。目录随意,我的放在 /var/www

git clone https://github.com/orvice/ss-panel.git  

进入目录,使用 composer 安装需要的依赖。

curl -sS https://getcomposer.org/installer | php  

php composer.phar  install  

没啥问题的话等一会就会装好了。如果有问题,老规矩看输出,缺啥装啥。

完了就安装 Redis:

sudo apt-get install redis-server  

 

添加 MySQL 数据库:

mysql -u root -p

mysql>create database shadowsocks;  

> use shadowsocks;

> source /var/www/ss-panel/db-160409.sql;

> flush privileges;

> exit;

 

配置 NGINX

创建配置文件:

sudo vim /etc/nginx/sites-enabled/ss-panel  

加入以下代码:

server {  

listen 80;

server_name example.com;

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

index index.php index.html index.htm;

location / {

try_files $uri $uri/ /index.php$is_args$args;

}

error_page 404 /404.html;

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

location ~ \.php$ {

try_files $uri =404;

fastcgi_split_path_info ^(.+\.php)(/.+)$;

fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

}

当然这是典型配置,记得把 example.com 换成你自己的网址。强烈推荐上 HTTPS 保护用户及管理员信息在传输过程中的安全。

 

复制并修改 SS-Panel 配置文件

进入到 ss-panel 文件夹,复制配置文件:

cp .env.example .env  

修改其中的信息,记得把 yourpassword 改成你自己的密码:

# database 数据库配置

db_driver = 'mysql'  

db_host = 'localhost'  

db_port = '3306'  

db_database = 'shadowsocks'  

db_username = 'root'  

db_password = 'yourpassword'  

db_charset = 'utf8'  

db_collation = 'utf8_general_ci'  

db_prefix = ''  

你还需要修改 .env 中的 muKey 字段,修改为任意字符串(最好只包含 ASCII 字符),下面配置后端的时候我们需要使用到这个 muKey:

muKey = 'test'  

接下来,确保 storage 目录可写入(否则 Smarty 会报错):

sudo chmod -R 777 /var/www/ss-panel/storage/

其他的配置项目前用不到,以后有需要可以自行修改。

添加一个管理员账户:

php xcat createAdmin  

开启 nginx 服务器:

sudo service nginx start  

好了,现在访问网站应该就可以看到 SS-Panel 界面了。前端界面到此部署完毕。

 

接下来部署后端 shadowsocks-manyuser

在本篇教程中我们使用 https://github.com/fsgmhoward/shadowsocks-py-mu 这个版本的后端。

先将代码 clone 到本地:

$ git clone https://github.com/fsgmhoward/shadowsocks-py-mu.git

源码 clone 后,你的目录结构应该是这样的:

其中的 shadowsocks 子目录才是我们需要的,外面的是 setup.py 的相关文件。

 

配置 shadowsocks-manyuser

进入 shadowsocks 目录,将 config_example.py 复制一份到 config.py:

$ cp config_example.py config.py

修改其中第 15 行和第 29~31 行的内容:

# 启用 MultiUser API

API_ENABLED = True

# 就是在你的站点地址后面加个 /mu

API_URL = 'http://ss.prinzeugen.net/mu'  

# 还记得上面在 .env 中填写的 muKey 吗?把它填在这里

API_PASS = 'test'  

由于我们选择使用 Mu API 来与前端通信,所以我们不需要修改 config.py 中任何关于数据库的配置。

好了,现在可以试着运行一下 $ python servers.py 了(注意,是 servers.py 而不是 server.py)。如果没错的话,应该可以看到这样的输出:

其中 P[XXX] 表示用户端口,M[XXX] 表示加密方式,E[XXX] 表示用户的邮箱地址。这些都会随着 ss-panel 前端中用户配置的改变而实时变化。

注意:在这之前你得以管理员进入你的前端页面,添加一个节点。加密方法,建议用 aes-256-cfb

 

0x03 常见错误 FAQ

连接上 shadowsocks 试试看能不能行?八成不能。

虽然你成功的把 servers.py 跑起来了,但还可能有各种神奇的错误阻止你翻出伟大的墙。

首先惯例查看连接:

$ netstat -anp | grep 你的端口

正常的话,应该是这样的:

Active Internet connections (servers and established)  

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name  

tcp        0      0 0.0.0.0:62111            0.0.0.0:*               LISTEN      32083/python  

tcp        0      0 162.233.122.111:62111    115.233.233.140:47177   TIME_WAIT   -  

tcp        0      0 162.233.122.111:62111    115.233.233.140:47161   TIME_WAIT   -  

tcp        0      0 162.233.122.111:62111    115.233.233.140:47160   TIME_WAIT   -  

tcp        0      0 162.233.122.111:62111    115.233.233.140:47157   TIME_WAIT   -  

如果没有来自你的 IP 的 TCP 连接的话,那八成就是防火墙的事了,执行 iptables 放行你的端口:

$ iptables -I INPUT -p tcp -m tcp --dport 你的端口 -j ACCEPT

$ iptables-save

ss-panel 新注册的用户所分配的端口均为其 id-1 的用户的端口号 + 1。比如说你把 admin 用户(uid 为1)的端口改为 12450(ss-panel 中不能改,去数据库改),那么后面注册的新用户的端口就会是 12451, 12452 这样递增的。

所以如果你要开放注册,就要这样配置你的 iptables:

# 注意是半角冒号,意为允许 12450 及以上的端口

# 也可以指定 12450:15550 这样的范围

$ iptables -I INPUT -p tcp -m tcp --dport 12450: -j ACCEPT

现在再连接 shadowsocks 就应该可以看到 TCP 连接信息了。并且你可以在 ss-mu 后端的输出信息中看到详细的连接日志:

 

最后

如果servers.py能成功运行,不报错,但是连上shadowsocks服务器端提示密码有问题的话,很可能就是加密方式有问题(遇到过这个问题),我查看了一下config.py文件里写的默认加密方式是:aes-256-cfb,这也是为什么上面建议用这种方式加密的原因!

 

配置开机自动运行servers.py

编辑/etc/rc.local文件:

在末尾添加你的运行命令:

python /path/servers.py  

path为你servers.py文件的路径。

 

好了,配置完毕,重启以下试试!


相关资讯
最新资讯
热门内容
Ubuntu Server 16.04.1安装配置图解教程