科学上网(2)
利用shadowsocks-manager实现shadowsocks的多用户配置和流量统计与限制。基于python版的shadowsocks,科学上网:VPS上搭建shadowsocks。可视化操作界面,动态添加用户、端口,设置流量限制,多种统计流量方式,按小时、天、月等。支持用户注册与连接多台服务器共同管理用户与限制流量。
shadowsocks-manager是基于Node.js和SQLite的一个shadowsocks多用户管理与流量控制工具,当然数据库也可以使用MySQL。目前支持shadowsocks-python和shadowsocks-libev。本文以shadowsocks-python为例。
文章目录
安装Node.js
安装shadowsocks-manager
使用shadowsocks-manager实现多用户管理与流量限制
在网页上配置shadowsocks-manager
搭建shadowsocks-manager视频教程
安装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'
注:其中http://yourwebsite.com是指你的域名(也可以用IP代替),如果是用域名,推荐使用Namesilo。
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
如上图所示,shadowsocks-manager可以实现shadowsocks新用户注册,用户管理,账号管理(端口配置&流量限制),甚至可以将多台服务器一起管理起来,实现多台服务器的shadowsocks流量限制与用户管理。
当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »