ss-panel搭建教程

ss-panel搭建说明

1. 安装LNMP

1.1 安装 nginx

1
2
sudo apt-get update
sudo apt-get install nginx

1.2 安装mysql

1
sudo apt-get install mysql-server

1.3 安装php7.0

1
apt-get install software-properties-common

添加 PPA:

1
sudo add-apt-repository ppa:ondrej/php

如果有乱码,需要设置语言:

1
2
sudo apt-get install language-pack-en-base
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php

安装

1
2
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

2. 部署ss-panel前端

提前安装好git

1
apt-get install git

2.1 下载 ss-panel,安装依赖

目录随意,以/home/*为例

1
2
cd  /home/*
git clone -b v3 https://github.com/orvice/ss-panel.git

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

1
2
3
cd ss-panel
curl -sS https://getcomposer.org/installer | php
sudo php composer.phar install

安装 redis:

1
sudo apt-get install redis-server

2.2 添加 MySQL 数据库

查看初始用户名与密码 cat /etc/mysql/debian.cnf

登录后修改root密码

1
set password for root@localhost = password(‘123456’);

root用户登录mysql

创建数据库

mysql>create database shadowsocks;
> use shadowsocks;
> source /var/www/ss-panel/db.sql;
> flush privileges;
> exit;

创建用户 shadow

mysql>create user shadow@'localhost' identified by 'qwer1234' ;

为用户shadow赋权

grant all privileges on shadowsocks.* to shadow@'localhost' identified by 'qwer1234';

2.3 配置 NGINX

创建配置文件:

1
sudo vi /etc/nginx/sites-enabled/default

修改为以下代码:

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
server {
    listen 80 default;
    listen [::]:80;
    # SSL configuration
    #
    # listen 443 ssl default_server;
    # listen [::]:443 ssl default_server;
    #
    # Note: You should disable gzip for SSL traffic.
    # See: https://bugs.debian.org/773332
    #
    # Read up on ssl_ciphers to ensure a secure configuration.
    # See: https://bugs.debian.org/765782
    #
    # Self signed certs generated by the ssl-cert package
    # Don't use them in a production server!
    #
    # include snippets/snakeoil.conf;
    root /home/*/ss-panel/public;
    # Add index.php to the list if you are using PHP
    index index.php index.html index.htm index.nginx-debian.html;
    location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            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;
    }
}

如需禁止ip访问,在文件开头添加代码

1
2
3
4
server {
   listen 80 default;
   return 500;
}

并将原代码中的 listen 80 default; 改为 listen 80;

1
2
1
2
cp .env.example .env
vi .env

2.4 修改 ss-panel 配置文件

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

1
2
1
2
cp .env.example .env
vi .env

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

1
2
3
4
5
6
7
8
9
10
# database 数据库配置
db_driver = 'mysql'
db_host = 'localhost'
db_port = '3306'
db_database = 'shadowsocks'
db_username = 'shadow'
db_password = 'qwer1234'
db_charset = 'utf8'
db_collation = 'utf8_general_ci'
db_prefix = ''

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

添加一个管理员账户:

1
php xcat createAdmin

开启 nginx 服务器:

1
sudo service nginx restart

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

3. 部署后端 shadowsocks-manyuser

3.1 下载代码

1
git clone -b manyuser https://github.com/mengskysama/shadowsocks.git

3.2 安装 cmysql 依赖

1
sudo pip install cymysql

(如果没有安装 pip,用 apt-get install python-pip 安装一遍即可)

3.3 配置

进入 shadowsocks/shadowsocks 目录 ` vi config.json`

1
2
3
4
5
6
7
8
9
10
{
    "server":"0.0.0.0",
    "server_ipv6": "[::]",
    "server_port":8388,
    "local_address": "127.0.0.1",
    "local_port":1080,
    "password":"qwer1234",
    "timeout":300,
    "method":"rc4-md5"
}

修改Config.py 文件的以下项,记得替换 yourpassword 为自己刚刚设置的密码:

1
2
3
4
5
6
#Config
MYSQL_HOST = 'localhost'
MYSQL_PORT = 3306
MYSQL_USER = 'shadow'
MYSQL_PASS = 'yourpassword'
MYSQL_DB = 'shadowsocks'

然后就完成了!python ./server.py 试试,如果没有报错就可以正常运行了。

1
/usr/bin/nohup /usr/bin/python /etc/shadowsocks/shadowsocks/servers.py

附注

  • 如有问题请尝试安装 apt-get install python-m2crypto

  • 修改 shadowsocks-manyuser 的 config.py 可以修改 SS-METHOD,推荐使用 aes-256-cfb。但是这样修改后在前端依然会显示 rc4-md5。

  • 如果不能连接,检查防火墙配置。SS-Panel 的端口是递加的,也就是说如果第一个用户的端口是 1000,那么新增用户的端口会是 1001, 1002, …。也就是说防火墙只要开启一个范围段的端口即可。举例如果要开启 1000-1050 的端口,可以 sudo ufw allow 1000:1050/tcp。偷懒的做法是添加 /usr/bin/nohup /usr/bin/python /etc/shadowsocks-rm/shadowsocks/servers.py 到 rc.local 来开机自动启动。记得使用绝对路径。

  • 如果出现 Slim Application Error,试试 sudo chmod -R 777 /var/www/ss-panel/storage/。

  • 在Listen ip:port; 这个指令行中,有一个参数default,指定了它后,这个server段就会是这个ip的默认站点;如果没有这个参数,那么默认ip直接访问的是nginx.conf中出现的第一个server段对应的站点。

    1
    2
    3
    4
    5
    server{ 
    listen: 127.0.0.1:80 default; 
    server_name shuai.be; 
    ... 
    }
    
  • 开机启动

    1
    vi /etc/rc.local
    

    加入以下内容

    1
    2
    cd /root/shadowsocks/shadowsocks
    screen -dmS Shadowsocks python server.py
    

    ` :wq` 保存退出