Skip to content

shadowsocks manyuser 安装与对接

Acris Liu edited this page Jun 6, 2016 · 10 revisions

1. 安装shadowsocks-rm manyuser服务端

shadowsocks-rm manyuser 支持UDP、One-Time-Auth、自定义加密和设置Pro节点等特性(需要shadowsocks-panel版本大于v1.10)
@Anan Yang@Acris 提供支持
GitHub地址: shadowsocks-rm manyuser
原作者: @mengskysama

1.1 获取最新版shadowsocks-rm manyuser

$ git clone https://github.com/Acris/shadowsocks-rm.git
$ cd shadowsocks-rm/shadowsocks

1.2 安装必要软件包

CentOS:

$ yum install m2crypto python-setuptools
$ easy_install pip

Debian / Ubuntu:

$ apt-get install python-pip python-m2crypto

安装 cymysql支持

pip install cymysql

1.3 编辑配置文件 配置文件可参考README

# 配置 数据库地址,数据库名,端口等..   
$ vim ./config.py
# 测试是否可以正常运行
$ python servers.py

注意事项

  • shadowsocks-rm manyuser支持UDP,请注意开放端口
  • 如果服务端日志出现error: too many open files,则需要对服务端进行优化。Optimizing Shadowsocks
  • 如果要使用 salsa20 或 chacha20 或 chacha20-ietf 算法,请安装 libsodium

2 配置后台运行脚本

2.1 systemd脚本 (这是什么?

提供一个 systemd 服务脚本,写进 /etc/systemd/system/shadowsocks-rm.service 即可,需要修改其中的运行用户组以及运行路径

[Unit]
Description=Shadowsocks Proxy Services(shadowsocks-rm manyuser)
After=syslog.target
After=network.target

[Service]
Type=simple
User=shadowsocks
Group=shadowsocks
WorkingDirectory=/home/shadowsocks-rm/shadowsocks
ExecStart=/usr/bin/python /home/shadowsocks-rm/shadowsocks/servers.py
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
Environment="USER=shadowsocks","HOME=/home/shadowsocks-rm/shadowsocks"

[Install]
WantedBy=multi-user.target

需要修改的地方有: WorkingDirectory=/home/shadowsocks-rm/shadowsocks , ExecStart=后面参数 , Environment=后面参数

2.2 supervisor进程守护

2.2.1 安装supervisor (这是什么?

apt-get install supervisor

2.2.2 添加配置文件

vim /etc/supervisor/conf.d/shadowsocks-rm.conf
[program:shadowsocks-rm]
command = /usr/bin/python /home/shadowsocks-rm/shadowsocks/servers.py
directory = /home/shadowsocks-rm/shadowsocks
user = shadowsocks
autostart = true
autorestart = true

注意修改command、directory和user后面的参数

其他版本

版本1 shadowsocks py manyuser
原作者@mengskysama

版本2 shadowsocks-rss manyuser
原作者@breakwa11

如果您对 Python/C# 等语言较为熟悉,可以尝试自行修改SQL字段来支持本面板,并且真诚希望您能共享出来。
您的fork链接以及贡献者将在此处显示。

# 版本1 (原 shadowsocks manyuser)
$ git clone -b manyuser https://github.com/sendya/shadowsocks.git
$ cd shadowsocks/shadowsocks

# 版本2 (shadowsocks-rss manyuser)
$ git clone -b manyuser-rss https://github.com/sendya/shadowsocks.git
$ cd shadowsocks/shadowsocks

面板与其他未支持的 shadowsocks manyuser 对接

尚未支持的shadowsocks manyuser版本,请自行修改sql查询字符串即可与面板对接

shadowsocks查询语句(一般存在于文件dbtransfer.py 或者 db_transfer.py)
port, passwd, u, d, t, transfer_enable, enable, switch 修改对应
port, sspwd, flow_up, flow_down, lastConnTime, transfer, enable 面板已舍弃 switch
其中 user 表在shadowsocks-panel中为 member