django-sspanel后端搭建及添加节点-最新

2018年7月9日

  1. 修复了当面付可能漏单的BUG(我用不到)
  2. 添加清理僵尸用户功能(请参考前端教程)

2018年6月17日:

  1. 前端sites.py增加了是否开启注册的开关
    ALLOW_REGISET = True
  2. 后端增加单端口多用户设置

2018年6月1日:

  1. 增加单端口多用户,去除91pay接口

注意:前后端均为master分支。

后端搭建

环境:CentOS 7
关闭 selinux
关闭 firewalld

先设置时区

timedatectl set-timezone Asia/Shanghai

获取源代码

yum -y install git
## 新版后端,面板作者已经更新(注意使用master分支)
git clone -b master https://github.com/Ehco1996/shadowsocksr.git

安装依赖

cd shadowsocksr
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py    
pip install requests

初始化配置文件

cd scripts
bash ./initcfg.sh

编辑userapiconfig.py

cd /root/shadowsocksr/configs
vi userapiconfig.py

内容如下

# API_INTERFACE = 'ehcomod'  # ehcomod <谜之屋专用> # webapi
API_INTERFACE = 'webapi'  # ehcomod <谜之屋专用> # webapi
UPDATE_TIME = 60

# Webapi token
TOKEN = "test"   # 注意这里跟前端配置文件sites.py一致
WEBAPI_URL = 'https://sspanel.com/api' # 注意这里http还是https,non-www还是www
NODE_ID = 1   # 后面添加节点时用的到 


# Mysql
MYSQL_CONFIG = 'configs/usermysql.json'

# MUJSON API
MUAPI_CONFIG = 'usermuapi.json'
SERVER_PUB_ADDR = '127.0.0.1'  # mujson_mgr need this to generate ssr link

编辑user-config.json

节点分单端口多用户及多端口多用户两种。
单端口主要是通过后端user-config.json中的"additional_ports": {},实现,当然也需要与前端添加的节点对应(后面会设置)。

先把原版贴出来(20180617)

{
    "server": "0.0.0.0",
    "server_ipv6": "::",
    "server_port": 8388,
    "local_address": "127.0.0.1",
    "local_port": 1080,
    "password": "m",
    "method": "aes-256-cfb",
    "protocol": "origin",
    "protocol_param": "",
    "obfs": "plain",
    "obfs_param": "",
    "speed_limit_per_con": 0,
    "speed_limit_per_user": 0,
    "additional_ports": {
        "443": {
            "passwd": "password",
            "method": "aes-128-ctr",
            "protocol": "auth_aes128_md5",
            "protocol_param": "#",
            "obfs": "tls1.2_ticket_auth",
            "obfs_param": ""
        }
    },
    "additional_ports_only": false, // 只允许单端口多用户
    "timeout": 120,
    "udp_timeout": 60,
    "dns_ipv6": false,
    "connect_verbose_info": 0,
    "redirect": "",
    "fast_open": false
}

单端口多用户-user-config.json

除了additional_port这个参数,其他参数保持默认。

配置实例:

"additional_ports" : {
    "15001": {
        "passwd": "共用的密码",
        "method": "aes-128-ctr",
        "protocol": "auth_aes128_md5",
        "protocol_param": "#",
        "obfs": "tls1.2_ticket_auth",
        "obfs_param": ""
    }
},

15001是设定的单端口;
protocol 必须为auth_aes128_md5auth_aes128_sha1;
protocol_param只需且必须写一个#;
所有参数需与前端添加的节点设置一致(后面会设置)
直接复制以上内容时记得修改端口与密码。

多端口端口多用户-user-config.json

其他参数保持默认,将additional_ports参数留空就可以了

配置实例

"additional_ports" : {},

前端添加节点

浏览器登陆–左下角网站后台–节点列表–添加节点

  • 节点ID,上文userapiconfig.py配置文件中”node_id”: 1, 所以新添加的节点 ID也是1。
  • 0601版本无论用单端口还是多端口,节点端口及节点密码都需要填,否则保存时会报Server Error (500)错误。0617已修复此bug,多端口不用填了。
  • 单端口的加密、协议与混淆要与user-config.json一致
  • 多端口的加密、协议与混淆要与前端sites.py一致

添加节点

添加节点

添加节点

运行情况

服务的运行和停止

以下所有命令均在根目录shadowsocksr下执行

cd /root/shadowsocksr

python server.py

输出

运行情况

CTRL+C终止运行
后台运行

screen -dmS shadowsocks python server.py

说明:后面有关于screen用法。

这时可以看看前端节点情况了,用户界面,节点信息

最终效果

关于防火墙设置

如果你是用宝塔,开放端口很简单

宝塔防火墙

如果使用firewalld-cmd命令开放端端口,参照几个例子,按自己实际情况设置。

#查看允许的端口
firewall-cmd --permanent --list-port
#允许10000端口
firewall-cmd --zone=public --add-port=10000/tcp --permanent
#允许10000-10100tcp/udp端口
firewall-cmd --zone=public --add-port=10000-10100/udp --permanent
firewall-cmd --zone=public --add-port=10000-10100/tcp --permanent
#更新规则 (必须,否则不生效)
firewall-cmd --reload

更多详见:CentOS 7下Firewalld使用讲解,若想直接关闭,执行如下命令

systemctl stop firewalld.service

禁止firewall开机启动

systemctl disable firewalld.service

关于screen用法

以本文screen -dmS shadowsocks python server.py为例

screen -dmS 用来创建一个处于断开模式的会话,shadowsocks为session name。
screen -r shadowsocks 可以恢复指定的会话,忘记了可以用screen -ls来查看。
Ctrl+A+D 暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。

详细用法见:linux screen 命令详解

参考

django-sspanel作者项目