2018年7月9日
- 修复了当面付可能漏单的BUG(我用不到)
- 添加清理僵尸用户功能(请参考前端教程)
2018年6月17日:
- 前端
sites.py
增加了是否开启注册的开关
ALLOW_REGISET = True - 后端增加单端口多用户设置
2018年6月1日:
- 增加单端口多用户,去除91pay接口
前端新教程 django-sspanel前端搭建-最新
博主的站点欢迎围观:augustdoit小站
注意:前后端均为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
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
中的"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
}
除了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_md5
或auth_aes128_sha1
;protocol_param
只需且必须写一个#
;
所有参数需与前端添加的节点设置一致(后面会设置)
直接复制以上内容时记得修改端口与密码。
其他参数保持默认,将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 -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 命令详解