guodong's blog

master@zhejiang university
   

VPS安装ssmanager

相信有很多人和作者一样都自己搭建了VPS,用于科学上网,但一个人每月的流量都用不完,其实是可以分享给他人的嘛,如果随便还能赚点小钱,何乐而不为了。所以就有了下面的教程,请出今天的主角shadowsocks-manager,废话不多少,直接开始

本文所使用的linux环境:CentOS7
另外因为之前我的VPS已经安装了shadowsocks了,所以以下步骤就省略了

安装nodejs

我这里使用的EPEL安装,EPEL(Extra Packages for Enterprise Linux)企业版Linux的额外软件包,是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供他们默认不提供的软件包。

先确认系统是否已经安装了epel-release包:

yum info epel-release

如果有输出有关epel-release的已安装信息,则说明已经安装,如果提示没有安装或可安装,则安装

yum install epel-release

安装完后,就可以使用yum命令安装nodejs了,安装的一般会是较新的版本,并且会将npm作为依赖包一起安装

安装nodejs

yum install nodejs

安装完成后,验证是否正确的安装,node -v,如果输出如下版本信息,说明成功安装

安装shadowsocks-manager

npm安装

npm i -g shadowsocks-manager

安装后的路径为:/usr/lib/node_modules/shadowsocks-manager

若安装过程提示以下错误:

1
gyp WARN EACCES user "root" does not have permission to access the dev dir "

则只需要运行下面的命令即可:(具体原因作者也不知道,google上的解决方案)

sudo npm install –unsafe-perm –verbose -g sails

如果要更新的

1
npm update -g shadowsocks-manager

配置

创建配置文件目录

mkdir ~/.ssmgr
cd .ssmgr

  1. 新建 default.yml
    内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    type: s
    
    shadowsocks:
      address: 127.0.0.1:6001 # **这里的地址和下面的【启动】中保持一致**
    
    manager:
      address: 0.0.0.0:4001
      password: '12345678'
    
    db: 'ss.sqlite'
  2. 新建配置文件webgui.yml
    作为webgui这个插件的配置文件,内容如下(如有更新,以官方Wiki为准)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    type: m
     
    manager:
      address: x.x.x.x:4001
      # 这里换成manager所在的服务器的ip
      password: '12345678'
      # 这部分的端口和密码需要跟上一步 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: '8088' #这个端口默认为80端口,因为有其他作用,所以改成了8088
        site: 'http://yourwebsite.com' # 将这里改成自己的 ip 或者域名,注意我这里改成了8088
        # 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'

配置文件中的email建议在vps上自己搭一个邮件服务器吧,后续在写一篇如何搭建邮件服务器
如果想用免费的,作者推荐mailgun,具体使用方法请自行google,这里就不介绍了

另外关于支付方式,paypal国内用的人少,而支付宝现在已停止了个人的当面付功能,需要有营业执照才能开通,作者目前也没有好的方式,若后续找到了好的支付方式,会更新在文章中。

启动

  • 用管理器 API 启动 shadowsocks

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

m 是加密方式,–manager-address 是监听地址。

启动命令中的地址和端口需要和default.xml中shadowsocks要保持一致

  • 运行以下命令:

    ssmgr -c default.yml
    ssmgr -c webgui.yml

如果启动第一个命令遇到以下错误:

1
Error: Cannot find module ‘/usr/lib/node_modules/shadowsocks-manager/node_modules/sqlite3/lib/binding/node-v48-linux-x64/node_sqlite3.node’

解决方法是:

cd /usr/lib/node_modules/shadowsocks-manager/
npm install sqlite3 –save

  • 添加开机启动
    开机启动我用的是supervisord,没有装的就不用往下看了,可以用其他方式:
    编辑supervisord.conf

    vim /etc/supervisord.conf

在后面添加如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[program:ssmgr]
command = ssserver -m aes-256-cfb -p 12345 -k abcedf --manager-address 127.0.0.1:6001
directory = /home
user = root
autostart = true
autorestart = true
stdout_logfile = /var/log/ssmgr/ssmgr.log
stderr_logfile = /var/log/ssmgr/ssmgr_error.log
environment = LANG="en_US.UTF-8"


[program:ssmgr_default]
command = ssmgr -c /root/.ssmgr/default.yml
directory = /home
user = root
autostart = true
autorestart = true
stdout_logfile = /var/log/ssmgr/ss.log
stderr_logfile = /var/log/ssmgr/ss_error.log
environment = LANG="en_US.UTF-8"

[program:ssmgr_webgui]
command = ssmgr -c /root/.ssmgr/webgui.yml
directory = /home
user = root
autostart = true
autorestart = true
stdout_logfile = /var/log/ssmgr/webgui.log
stderr_logfile = /var/log/ssmgr/webgui_error.log
environment = LANG="en_US.UTF-8"

重启supervisord

supervisord -c /etc/supervisord.conf

芝麻开门

如上一切正常,在浏览器中输入http://yourwebsite.com:端口号,
就会出现相应的页面了,后面的大伙自己慢慢玩吧

自己搭建邮件服务器webgui.yml配置

作者用了第三方的邮件插件,发现根本不好用,索性还不如自己搭建一个邮件服务器,我的用的是postfix+dovecot,整个过程中主要是配置文件的修改,如果想自己搭建,请看这里自己搭建邮件服务器
这里主要说下如何在shadowsocks-manager中配置,也是看了源码才知道怎么配置的,直接上配置文件中的email配置,后面会有详细的说明

1
2
3
4
5
6
7
8
9
10
11
email: 
  use: true
  type: 'smtp'
  username: 'service'
  password: 'starlin123'
  host: 'mail.starlin.top' 
  # 原配置文件中是没有定义端口号,如果不定义,默认的端口号是465,
  # 因为我们没有配置ssl,所以必须定义端口25,这个也是从日志中发现了,不配置默认走465端口
  port: '25' 
  # 如果此项不配置,虽然页面一直提示验证码已发送,其实根本就收不到
  email: 'service@starlin.top



上一篇:
下一篇:

guodong

没有评论


你先离开吧:)



发表评论

电子邮件地址不会被公开。 必填项已用*标注