django-sspanel后端搭建

2018年6月1日更新:
这次更新内容主要增加了单端口多用户
对比一下旧教程,主要是目录有些变动,这版教程不改了,开新教程
前端新教程 django-sspanel前端搭建-201806
后端新教程 django-sspanel后端搭建-201806
博主的站点欢迎围观:augustdoit小站  

2018年5月9日更新:
把前后端都重新部署一遍,这里也更新一下,图片仍为旧图片,看了下没什么影响,懒得换了。   

获取源代码

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

初始化配置文件

bash ./initcfg.sh

编辑userapiconfig.py

vi userapiconfig.py

内容如下

import base64
# Config
# API_INTERFACE = 'ehcomod'  # ehcomod <谜之屋专用> # webapi
API_INTERFACE = 'webapi'  # ehcomod <谜之屋专用> # webapi
UPDATE_TIME = 60
# Webapi token
USERNAME = 'sspanel'   //注意这里,管理员用户名及端口
PORT = 10000        // 要与站点配置文件 sites.py一致
try:
    TOKEN = base64.b64encode(
        bytes('{}+{}'.format(USERNAME, PORT), 'utf8')).decode()
except:
    TOKEN = base64.b64encode(
        bytes('{}+{}'.format(USERNAME, PORT))).decode()
WEBAPI_URL = 'https://sspanel.com/api' //注意这里,若宝塔站点绑定了两个域名www及non-www,那么填non-www
NODE_ID = 1   //与前端对应,前端之后再设置
# Mysql
MYSQL_CONFIG = 'usermysql.json'
# MUJSON API
MUAPI_CONFIG = 'usermuapi.json'
SERVER_PUB_ADDR = '127.0.0.1'  # mujson_mgr need this to generate ssr link

添加节点

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

节点ID,上文userapiconfig.py配置文件中"node_id": 1, 所以新添加的节点 ID也是1。

加密类型、协议、混淆、确保与前端-站点配置文件sites.py一致。

自定义加密0为不允许用户自定义加密,1为可以。

添加节点

节点信息

服务的运行和停止

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

python server.py

输出

运行情况

CTRL+C终止运行
后台运行

screen -dmS shadowsocks python server.py

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

这时可用客户端测试链接情况了。网站最终效果

最终效果

客户端进行测试

如果前后端都没有报错,而客户端连接不上,需要检查防火墙开放相应端口。举几个例子,请按自己实际情况设置。

#查看允许的端口
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

其他运行方式(通过脚本运行)

后台运行(无log,ssh窗口关闭后也继续运行)

./run.sh

后台运行(输出log,ssh窗口关闭后也继续运行)

./logrun.sh

后台运行时查看运行情况

./tail.sh

停止运行

./stop.sh

注:通过脚本运行默认日志会保存在根目录的ssserver.log,可手动查看。

关于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前端搭建: django-sspanel前端搭建

其他参考

ShadowsocksR 推荐协议混淆设置
支付宝当面付插件配置
如何正确的debug
更新日志