欢迎光临
我们一直在努力

shadowsocks-manager实现ss多用户管理与流量限制

利用shadowsocks-manager实现shadowsocks的多用户配置和流量统计与限制。基于python版的shadowsocks,科学上网:VPS上搭建shadowsocks。可视化操作界面,动态添加用户、端口,设置流量限制,多种统计流量方式,按小时、天、月等。支持用户注册与连接多台服务器共同管理用户与限制流量。

shadowsocks-manager是基于Node.js和SQLite的一个shadowsocks多用户管理与流量控制工具,当然数据库也可以使用MySQL。目前支持shadowsocks-python和shadowsocks-libev。本文以shadowsocks-python为例。

如果觉得搭建难度较大,可以结合视频一起来看,视频教程在文章底部。

更新:多个节点管理起来参考:利用shadowsocks-manger将多台vps上的ss连接起来

 

安装Node.js

需要的Node版本为Node.js 8.*,建议采用nodesource进行安装。

系统为Ubuntu,安装方式:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

 

安装shadowsocks-manager

直接用npm进行安装:

npm i -g shadowsocks-manager

更新:如果一直报错(WARN没有关系,要有ERR才是报错),则尝试执行:npm i -g shadowsocks-manager --unsafe-perm

 

使用shadowsocks-manager实现多用户管理与流量限制

1.开启shadowsocks

ssserver -m aes-256-cfb -p 12345 -k abcedf --manager-address 127.0.0.1:6001 -d start

注意此处的提示必须是started,而不是ERROR already started at pid ***,如果是后者,就先运行ssserver -d stop。

2.新建配置文件ss.yml,例如我放在~/.ssmgr路径下,内容如下:

type: s

shadowsocks:
  address: 127.0.0.1:6001
  # 这里的地址和端口需要跟上一步的 --manager-address 参数保持一致,连接上述 udp 端口
manager:
  address: 0.0.0.0:4001
  # 这个 address 参数会让程序监听一个 tcp 端口,用于接收 webgui 发送过来的控制命令
  password: '123456'
db: 'ss.sqlite'

3.新建配置文件webgui.yml,作为webgui这个插件的配置文件,内容如下(如有更新,以官方Wiki为准):

type: m

manager:
  address: 45.77.58.123:4001
  # 这里换成manager所在的服务器的ip
  password: '123456'
  # 这部分的端口和密码需要跟上一步 manager 参数里的保持一致,以连接 type s 部分监听的 tcp 端口
plugins:
  flowSaver:
    use: true
  user:
    use: true
  account:
    use: true
  macAccount:
    use: true
  group:
    use: true
  email:
    use: true
    type: 'smtp'
    username: 'username'
    password: 'password'
    host: 'smtp.your-email.com'
    # 这部分的邮箱和密码是用于发送注册验证邮件,重置密码邮件
  webgui:
    use: true
    host: '0.0.0.0'
    port: '80'
    site: 'http://yourwebsite.com'
    # cdn: 'http://xxx.com' # 静态资源cdn地址,可省略
    # icon: 'icon.png' # 自定义首页图标,默认路径在 ~/.ssmgr 可省略
    # googleAnalytics: 'UA-xxxxxxxx-x' # Google Analytics ID,可省略
    # gcmSenderId: '456102641793' # gcmSenderId 、gcmAPIKey 这两个是Chrome推送用的
    # gcmAPIKey: 'AAAAGzzdqrE:XXXXXXXXXXXXXX'
  webgui_telegram:
    # telegram 机器人的配置,可省略
    use: true
    token: '191374681:AAw6oaVPR4nnY7T4CtW78QX-Xy2Q5WD3wmZ'
  alipay:
    # 如果不使用支付宝,这段可以去掉
    use: true
    appid: 2015012108272442
    notifyUrl: 'http://yourwebsite.com/api/user/alipay/callback'
    merchantPrivateKey: 'xxxxxxxxxxxx'
    alipayPublicKey: 'xxxxxxxxxxx'
    gatewayUrl: 'https://openapi.alipay.com/gateway.do'
  paypal:
    # 如果不使用paypal,这段可以去掉
    use: true
    mode: 'live' # sandbox or live
    client_id: 'At9xcGd1t5L6OrICKNnp2g9'
    client_secret: 'EP40s6pQAZmqp_G_nrU9kKY4XaZph'

db: 'webgui.sqlite'

注:

1.其中http://yourwebsite.com是指你的域名(也可以用IP代替),如果是用域名,推荐使用Namesilo

2.如果邮箱使用qq和163的邮箱一直发送失败(密码不是你的QQ密码,是一个独立的很长的密码,host是smtp.qq.com,163的自己搜看smtp服务器是什么),那么你可以试一下使用自己的域名邮箱:Zoho免费域名邮箱,正好可以让网站使用域名而不是IP。

4.启动shadowsocks-manager(我直接使用screen启动了,如果要调试,自行取消screen -dmS ssmgr/webgui

screen -dmS ssmgr ssmgr -c ~/.ssmgr/ss.yml

screen -dmS webgui ssmgr -c ~/.ssmgr/webgui.yml

启动时我遇到这个错误Error: Cannot find module ‘/usr/lib/node_modules/shadowsocks-manager/node_modules/sqlite3/lib/binding/node-v48-linux-x64/node_sqlite3.node’,Google之作者的回复是由于网络原因安装失败,建议我们重新安装试试:

npm uninstall -g shadowsocks-manager

npm install -g shadowsocks-manager

但是我重新安装了几次都没有成功,最后的解决方法是是:

cd /usr/lib/node_modules/shadowsocks-manager/

npm install sqlite3 --save

更新:如果运行ssmgr提示“/usr/bin/env: ‘noder’: No such file or directory”,那么是因为你在Mac上安装或者更新的shadowsocks-manger,导致换行符有点编码问题。解决方法是修改文件/usr/lib/node_modules/shadowsocks-manager/bin/ssmgr,修改方式,用vim编辑器在命令模式执行如下命令:

:se ff=unix
:wq

 

 

在网页上配置shadowsocks-manager

按照第二部分配置好之后,打开http://yourwebsite.com就可以看到注册界面了,首次注册的账号即为管理员~

shadowsocks-manager-web

如上图所示,shadowsocks-manager可以实现shadowsocks新用户注册,用户管理,账号管理(端口配置&流量限制),甚至可以将多台服务器一起管理起来,实现多台服务器的shadowsocks流量限制与用户管理。

 

搭建shadowsocks-manager视频教程

录制了一个视频教程,可以关注公众号flyzy小站,回复多用户视频,即可获得

flyzy小站

 

赞(0)
未经允许不得转载:拆东墙 » shadowsocks-manager实现ss多用户管理与流量限制

评论 抢沙发

登录

找回密码

注册