ssrpanel:搭建shadowsocksr流量监控和用户管理面板

更新:

ssrpanel项目已经被作者闭源且删除,从github上已经下不到源码了,所以本文提供的github下载链接已失效,需要另行寻找下载途径。

自己如果有台国外服务器,一般都会用来搭建用来科学上网的代理,VPN被封禁的严重,所以一般会使用SS或者SSR搭建,虽然作者已经被请喝茶了,但起码还能苟一段时间。

shadowsocksR确实是一款强大的代理工具,但只有后端,对于有流量统计和用户管理需求的管理者来说就不大方便了,目前比较好的解决方案是使用前端面板,也就是以网站的形式将这些内容呈现出来,方便管理,也方便用户自己进行查询。

 

比较出名的前端面板是sspanel,不过作者orvice也已经被请喝茶了,所以sspanel目前更新到V4版本就停止更新了,并且GitHub上面的源码已经被删除,只不过还可以从releases页面下载到

sspanel-v4-最后更新时间.png

也可以看到更新时间是2017年7月9日,至今(2018年9月23日)已经有一年多没更新了,而且部分功能也不够完善,虽然有其他人进行了fork,完善了部分功能,比如:zxhm001完善的项目ss-panel-v4,曾搭建过,感觉还可以,而且网上也能找到很多教程,虽然都是基于V3的。

点击查看sspanel的2张截图

不过今天要介绍的是更好用的SSRPanel,可以看成是sspanel的升级版,先看看效果图。

点击查看ssrpanel的4张截图

在GitHub上,作者也有一段关于ssrpanel功能的介绍列表(所以13和16哪去了?):

1.SSR多节点账号管理面板,兼容SS、SSRR,需配合SSR或SSRR版后端使用
2.支持v2ray(开发中)
3.开放API,方便自行定制改造客户端
4.内含简单的购物、卡券、邀请码、推广返利&提现、文章管理、工单(回复带邮件提醒)等模块
5.用户、节点标签化,不同用户可见不同节点
6.SS配置转SSR(R)配置,轻松一键导入导出SS账号
7.单机单节点日志分析功能
8.账号、节点24小时和本月的流量监控
9.流量异常、节点宕机邮件或ServerChan及时通知
10.账号临近到期、流量不够会自动发邮件提醒,自动禁用到期、流量异常的账号,自动清除日志等各种强大的定时任务
11.后台一键添加加密方式、混淆、协议、等级
12.屏蔽常见爬虫、屏蔽机器人
14.支持单端口多用户
15.支持节点订阅功能,可自由更换订阅地址、封禁账号订阅地址、禁止特定型号设备订阅
17.支持多国语言,自带英日韩繁语言包
18.订阅防投毒机制
19.自动释放端口机制,防止端口被大量长期占用
20.有赞云支付
21.可以阻止大陆或者海外访问
22.中转节点(开发中)
23.强大的营销管理:PushBear群发消息
24.telegram机器人(开发中)
25.防墙监测,节点被墙自动提醒、自动下线(TCP阻断)

其实就目前来说,ssrpanel也有一些不够完善的地方,比如账户充值没有自动确认充值的选项,只能通过发放充值券的方式,也就是说,先让用户通过微信或支付宝等方式转钱过来,然后人工确认之后再发一个充值券下去,让用户充值,不过对于用户量不多,又不决定做大的管理员来说,已经够用了。

更新:ssrpanel目前已支持对接有赞云支付宝国际以及支付宝当面付,可以放心食用。

不过在开始之前有一些东西需要说明:ssrpanel的使用需要安装lnmp套件(Linux + Nginx + MySQL + Php-fpm),网上有一键安装脚本,可自行搜索“宝塔面板”下载脚本进行执行,本教程只提供手动安装方式,毕竟自己动手安装的东西心里才有数,以后出问题才有能力解决,而且也推荐在摸索中学习。

配置基础环境

安装ssrpanel需要配置基础环境,包括安装常用的lnmp网站套件,毕竟ssrpanel实际上就是一个网站,除此之外,还需要ssrpanel执行脚本需要使用到的php环境。

安装MariaDB

首先需要配置源,进入MariaDB官网定制MariaDB的官方源,选择合适MariaDB版本。如CentOS 7选择:CentOS > CentOS 7 (x86_64) > 10.3 [Stable],配置源的方法在官网页面选择源之后,页面下方会显示出来。

选择版本

之后将官网的配置复制下来,添加为源:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 编辑源
vim /etc/yum.repos.d/MariaDB.repo
    
# 将复制来的配置填入
# MariaDB 10.2 CentOS repository list - created 2018-01-27 07:39 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

# 安装MariaDB
yum install MariaDB-server -y

# 启动服务并设置开机启动
systemctl start mariadb
systemctl enable mariadb

之后是设置MariaDB,主要是MariaDB的安全设置,第一次安装mysql需要运行此命令:

1
mysql_secure_installation

因为是初次设置MariaDB,root密码是空的,所以在要求输入密码时直接回车,然后按照提示设置新密码:

1
2
3
4
5
6
7
8
9
10
11
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

# 是否设置root密码,建议设置密码以提高安全性,输入y并回车
Set root password? [Y/n] y

# 设置密码
New password: 

# 再次输入密码
Re-enter new password:

接下来是数据库相关设置,可以全都输入y,以下是截取的部分输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
...
Remove anonymous users? [Y/n] y          # 删除匿名用户
...

Disallow root login remotely? [Y/n] y    # 禁止root远程登录
...

Remove test database and access to it? [Y/n] y    # 删除test数据库
...

Reload privilege tables now? [Y/n] y     # 刷新权限
...
Thanks for using MariaDB!

安装Php-fpm以及相关组件

安装php用webtatic源,更新较快,且其命名有自己的特色方式,可以避免与其他源的某些冲突

1
2
3
4
5
6
# 配置PHP源
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

# 安装PHP以及PHP扩展
yum install php71w-fpm php71w-gd php71w php71w-mysqlnd php71w-pdo php71w-mcrypt php71w-mbstring php71w-xmlrpc php71w-bcmath unzip php71w-xml php71w-devel -y

安装好后进行配置:

1
2
3
4
5
6
7
# 编辑配置文件
vim /etc/php.ini

# 找到
;cgi.fix_pathinfo=1
# 去掉注释,并将1改成0
cgi.fix_pathinfo=0

接着编辑php-fpm的配置文件,因为是配合nginx用的,所以需要把使用php-fpm的用户改为nginx:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 编辑php-fpm的配置文件
vim /etc/php-fpm.d/www.conf

# 修改第8、10行
user = apache
group = apache
# 改为
user = nginx
group = nginx

# 修改33、34行
;listen.owner = nobody
;listen.group = nobody
# 改为
listen.owner = nginx
listen.group = nginx

最后启动:

1
2
3
# 启动服务并设置开机启动
systemctl start php-fpm
systemctl enable php-fpm

安装nginx

官方nginx有两个版本,mainline和stable,即开发版和稳定版,区别是前者引入新特性但可能有新bug,后者足够稳定。事实上,两者均比较稳定,nginx的网站总是运行在mainline版上,不过还是推荐新手选择稳定版。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 编辑repo文件
vim /etc/yum.repos.d/nginx.repo

# 输入如下内容
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

# 安装nginx
yum install nginx -y

# 启动服务并设置开机启动
systemctl start nginx
systemctl enable nginx

这时lnmp环境就安装成功了。

安装Nginx之后存在一个默认配置,只要前面配置没有错误,那么nginx启动之后就可打开默认网页。直接用浏览器打开主机IP地址或者域名,如果可以看到nginx的欢迎页面,就说明nginx已经在工作了。

当然也可以设置用域名打开,不过能用域名打开的前提是已经设置了解析,不知道怎么设置解析可以移步设置域名解析:给域名设置一些实用有趣的二级域名

nginx安装成功后的欢迎界面

安装ssrpanel

ssrpanel是由ssrpanel(作者在GitHub上就是这个名字)开发的,在GitHub上开源的项目:SSRPanel,由于作者头像用的是哆啦A梦里面的人物胖虎,所以一般也称作者为胖虎。

ssrpanel安装很简单,基本就是对接MySQL、Nginx,然后给文件夹改权限就行了。

下载源码

先进入需要存放ssrpanel的文件夹,一般和前端相关的我都习惯放在/var/www

1
cd /var/www

然后下载ssrpanel源码:

1
git clone https://github.com/ssrpanel/ssrpanel.git
错误提示:“-bash: git: 未找到命令”的解决办法

然后ls就能看到一个ssrpanel文件夹,直接进入:

1
cd ssrpanel

设置PHP环境

其实上面安装Php-fpm的时候已经安装了部分php组件,在这里需要安装ssrpanel需要使用的php组件。

使用工具安装php组件:

1
php composer.phar install

之后就是一大列的安装组件过程。

如果是较早版本的ssrpanel,还需要自行下载composer.phar组件:

1
2
# 获取php组件安装工具
curl -sS https://getcomposer.org/installer | php
  • 注意:必须在ssrpanel目录下执行,因为会使用到该目录下的composer.json文件,这个文件内记录了ssrpanel所需要的组件。
点击查看出现’proc_open(): fork failed – Cannot allocate memory’的解决办法

到这里ssrpanel基本就配置完成了,不过为了让网站nginx服务器能够成功读取ssrpanel目录,需要设置权限和用户组:

1
2
3
# 设置权限和用户组
chown -R nginx:nginx storage/
chmod -R 755 storage/

配置Nginx

新建一个nginx配置文件:

1
vim /etc/nginx/conf.d/ssrpanel.conf

之后复制下面的内容进去:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server {
  listen 80;
  server_name 127.0.0.1;

  root /var/www/ssrpanel/public;

  location / {
      try_files $uri $uri/ /index.php$is_args$args;
      index index.php;
  }

  location ~ \.php$ {
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include fastcgi_params;
  }
}

保存退出,然后重载nginx:

1
nginx -s reload

由于ssrpanel需要日志记录,所以还需要新建一个日志存档:

1
touch /var/www/ssrpanel/storage/logs/laravel-2019-03-09.log

配置MySQL数据库

刚才设置MySQL的时候设置了root账户,所以用root账户登陆数据库:

1
mysql -u root -p

输入密码就能进入,然后是设置ssrpanel需要用到的数据库、用户和密码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 创建ssrpanel数据库,名称为ssrpanel,可以根据自己喜好改为别的名字
create database ssrpanel;

# 使用新建的ssrpanel数据库
use ssrpanel;

# 将数据导入新建的ssrpanel数据库
source /var/www/ssrpanel/sql/db.sql;

# 创建ssrpanel的MySQL用户,名称密码都为ssrpanel
create user 'ssrpanel'@'localhost' identified by 'ssrpanel';

# 赋予刚才创建的ssrpanel用户以所有权限
GRANT ALL ON ssrpanel.* TO 'ssrpanel'@'localhost';

# 刷新权限
flush privileges;

# 退出MySQL
exit

可以按照自己喜好将数据库、用户和密码改成其他,但如果不是按照上面的名字设置,需要在配置文件里面修改成对应字段。

接下来把数据库信息写进配置文件,复制一份配置文件出来:

1
cp .env.example .env

.env.example是原本就存在的文件,在复制出.env添加配置文件之后,源文件就相当于备份了,以后折腾出错还能找回来,事实上,折腾服务器也应该养成备份这个好习惯。

然后编辑配置文件:

1
vim /var/www/ssrpanel/.env

找到对应的位置修改这三项:

1
2
3
DB_DATABASE=ssrpanel    # 数据库名称
DB_USERNAME=ssrpanel    # 数据库用户
DB_PASSWORD=ssrpanel    # 数据库密码

这三行是ssrpanel用来连接MySQL数据库用的,等号=后面接的就是设置的参数,这三个参数可以改成自己想要设的字段,只要能记住即可,后面会在配置MySQL的时候进行添加数据库和用户的操作。

这里为了方便演示全都设为ssrpanel,注意是为了演示方便才这样设的,可以的话把用户和密码设的复杂一些。

之后是生成站点key:

1
php artisan key:generate

配置域名访问

这个时候网站就搭建起来了,直接访问服务器ip地址就能打开网页。

ssrpanel登陆界面.png

如果打开网站发现还是那个nginx的默认界面,就把nginx存在的默认配置删掉:

1
rm /etc/nginx/conf.d/default.conf

之后再重载nginx即可:

1
nginx -s reload

如果自己有域名,也按照上面说的设置了解析,就修改nginx配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server {
  listen 80;
  server_name ssrpanel.wenjinyu.me;

  root /var/www/ssrpanel/public;

  location / {
      try_files $uri $uri/ /index.php$is_args$args;
      index index.php;
  }

  location ~ \.php$ {
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include fastcgi_params;
  }
}

之后就可以通过域名访问了,域名容易记,而且设置好的二级域名,一看便知是用来做什么的,比如我设置的ssrpanel.wenjinyu.me

不过,为了提高安全,强烈建议使用ssl加密,不了解ssl或者https的可以看:使用 Let’s Encrypt 为网站制作ssl加密,启用https协议,设置好后网址就是https://ssrpanel.wenjinyu.me,这时需要修改nginx配置文件, 下面这个就是最终结果了:

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
server {
  listen 443 ssl;
  server_name ssrpanel.wenjinyu.me;   # 设置成自己的域名
  # 下面两行是ssl密钥存放目录
  ssl_certificate       /etc/letsencrypt/live/ssrpanel.wenjinyu.me/cert.pem;
  ssl_certificate_key   /etc/letsencrypt/live/ssrpanel.wenjinyu.me/privkey.pem;

  root /var/www/ssrpanel/public;

  location / {
      try_files $uri $uri/ /index.php$is_args$args;
      index index.php;
  }

  location ~ \.php$ {
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include fastcgi_params;
  }
}

server {
  listen 80;
  server_name ssrpanel.wenjinyu.me;   # 设置成自己的域名
  return 301 https://$server_name$request_uri;
}

设置完记得重新加载nginx使更改生效:

1
nginx -s reload

添加管理员用户

之所以不将添加管理员的步骤放在ssrpanel配置里面,是因为添加用户需要用到MySQL,所以需要先配置MySQL后才能添加用户。

由于ssrpanel文件夹里面的数据库已经存在设置好的管理员账户,所以直接用默认的管理员账户登录即可:

1
2
账户:admin
密码:123456
点击查看旧版ssrpanel新增管理员账户的方式

登录管理员账户之后第一件事就是更改账户名和密码,密码比较容易更改,登录之后点击右上角的账户,打开个人设置就可以改密码了。

与此同时,很建议将账户名也一起更改,能够降低被爆破(暴力破解)的风险。可以在用户管理 -> 用户列表里面找到管理员账户,点击后面的操作 -> 编辑进入编辑界面即可更改用户名。

查看通过系统后台数据库方式更改用户名步骤

之后就可以使用这个账户登陆ssrpanel面板了。

进入ssrpanel.png

安装shadowsocksR多用户版本

为了配合ssrpanel,这里使用的是数据库版本的ssr,也就是说,ssr里面的用户信息——包括端口之类的参数和使用流量数据等——都存在数据库里面。

下载安装shadowsocksr:

1
git clone -b manyuser https://github.com/shadowsocksrr/shadowsocksr.git /var/www/shadowsocksr

然后再修改shadowsocksr的数据库配置文件:

1
vim /var/www/shadowsocksr/usermysql.json

将数据库、用户名和密码修改成之前设置的ssrpanel,node_id也要设置为1:

1
2
3
4
5
6
7
8
9
10
11
12
13
{
    "host": "127.0.0.1",
    "port": 3306,
    "user": "ssrpanel",
    "password": "ssrpanel",
    "db": "ssrpanel",
    "node_id": 1,
    "transfer_mul": 1.0,
    "ssl_enable": 0,
    "ssl_ca": "",
    "ssl_cert": "",
    "ssl_key": ""
}

至于node_id为什么要设为1,对于需要配置多节点的人来说很需要了解。

在后台管理界面:节点管理 – 节点列表可以通过添加节点按钮添加节点,添加完后可以在改节点的第一项看到ID,这个ID就是node_id,也就是说,node_id是告诉面板这是第几个序号的节点。很重要的一点是,node_id是在面板添加节点之后才生成的,所以要增加节点,首先需要在面板添加节点,之后再对节点进行配置。

配置好后进入ssr目录进行相关配置:

1
2
3
4
5
6
7
cd /var/www/shadowsocksr/

# 安装依赖(cymysql)
./setup_cymysql.sh

# 初始化配置
./initcfg.sh

然后编辑用户配置文件:

1
vim userapiconfig.py

API_INTERFACE等号后面改成'glzjinmod',也就是:

1
API_INTERFACE = 'glzjinmod'

glzjinmod是多用户模式,其他几个模式暂时没找到相关资料,所以我也不是很懂到底是做什么的。

此时就可以试运行ssr了:

1
python server.py

如果没报错,那么就可以Ctrl+C结束进程,然后放在后台运行了:

1
./run.sh

如果需要记录运行日志,可以用下面这个脚本:

1
./logrun.sh

设置守护进程

shadowsocksr如果用上面的方式运行,那么关掉命令行窗口之后进程就会被杀死,如果用nohup或者&之类的也有可能在后台运行的时候被杀死,所以最好还是设置成守护进程。

添加一个配置文件:

1
vim /etc/systemd/system/shadowsocksr.service

加入以下配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[Unit]
Description=ShadowsocksR server
After=syslog.target
After=network.target

[Service]
LimitCORE=infinity
LimitNOFILE=512000
LimitNPROC=512000
Type=simple
WorkingDirectory=/var/www/shadowsocksr
ExecStart=/usr/bin/python /var/www/shadowsocksr/server.py
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
Restart=always

[Install]
WantedBy=multi-user.target
Alias=ssr

然后就可以通过守护进程的方式启动了:

1
2
3
4
5
# 启动ssr
systemctl start shadowsocksr

# 设置开机自启
systemctl enable shadowsocksr

设置防火墙

有些时候并不是ssr或者ssrpanel设置好就能用的,还需要注意系统的防火墙,很多新手都会卡在这个地方。

由于个人习惯使用iptables进行防护墙管理,所以一般会关掉自带的selinux或者firewalld。

关闭SELinux

SELinux是一般Linux会自带的防火墙,但是一开始接触的就是iptables,而且不打算换,所以一般都会把SELinux关掉。

查看SELinux是否开启:

1
/usr/sbin/sestatus -v

如果SELinux status参数为enabled即为开启状态:

1
SELinux status:                 enabled

关闭SELinux,修改配置文件:

1
vim /etc/selinux/config

1
SELINUX=enforcing

改为

1
SELINUX=disabled

然后重启

关闭firewalld

firewalld也是一个防火墙工具,centos服务器一般会预装,但用不习惯,所以一般会关掉。

查看firewalld运行状态:

1
systemctl status firewalld

关闭firewalld:

1
systemctl stop firewalld

关闭firewalld开机自启:

1
systemctl disable firewalld

或者干脆点,直接卸了:

1
yum remove firewalld

设置iptables规则

iptables是一款好用的防火墙管理工具,可用于加强服务器安全。使用方法有也很简单,例如规定ssr能使用的端口范围为10000到11000这1001个端口,那么就这样添加规则:

1
2
iptables -A INPUT -p tcp --dport 10000:11000 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 10000:11000 -j ACCEPT

然后保存规则:

1
service iptables save

iptables的安装以及详细规则解说网上很多,一搜就有,这里就不赘述了。

定时任务

ssrpanel需要设置定时任务,否则就看不到每个用户使用流量的曲线图。

添加定时任务:

1
crontab -e -u nginx

加入下面这一行:

1
* * * * * php /var/www/ssrpanel/artisan schedule:run >> /dev/null 2>&1

ssrpanel的记录规则是每小时和每天,所以添加定时任务后的下一个小时就可以看到数据了。

ssrpanel流量图.png

设置用户注册验证邮箱

如果网站开放注册,那么就会有一个激活账户的问题。

有一个方法是由管理员手动激活,这样做缺点也比较明显,就是麻烦。

第二个方法就是配置好注册激活邮箱,如果用户注册了帐户,那么就用这个配置的邮箱把账户激活链接发送给用户,然后用户通过点击这个链接就可以激活账户了。

这个用来把激活链接发送给用户的邮箱并没有什么特殊要求,不过最好还是用一些比较特殊的邮箱,比如本站域名为wenjinyu.me,使用的激活邮箱就是"[email protected]",这样子好管理,收到邮件的用户对发送方的身份也是一目了然。

注册企业邮箱

如果只是使用普通邮箱,那么可以直接跳到下一步。

配置域名邮箱,例如上面用来举例子的"[email protected]",需要有自己的域名。域名邮箱可以自己搭建邮件系统,但是这种方式并不推荐,原因是搭建起来容易,却不容易维护,原因有以下几个:

  1. 自建邮箱发送的邮件很容易被接收方的邮件服务商分类为垃圾邮件,这个需要和各个邮件服务商沟通解决。
  2. 反垃圾机制的缺失,自建邮件通常会收到一大堆垃圾邮件。

自建邮件服务器不容易,和邮件服务商的沟通先不说,反垃圾就够呛的了,即使有毅力维护,也需要花费不少时间精力,这样做并不值得,所以还是安心使用企业邮箱。本来最推荐的是gmail企业邮箱,不过现在已经收费了,$5/月,现在网站还是入不敷出,所以就只能先寻找免费方案凑合着用。

目前本站使用的是网易企业邮箱,优点是免费,缺点不少,比如配置简陋,还有就是不少邮件发不出去,经常收到退信,原因不明(官方说明是“发送的信件大小超过了对方的接收限制”,不过4k不到的邮件怎么可能超),猜测是接收方的邮件服务器在国外,最近也在寻找更好的方案,有推荐的话欢迎和我交流。

注册网易企业邮箱的网址在这里:http://app.ym.163.com/ym/reg/view/index

注册过程比较简单,就不多说,注册之后需要设置域名DNS解析,按照提示操作就行。设置完之后需要等待一段时间才能使解析生效,然后就可以使用了。

配置注册验证邮箱

有了自己的邮箱之后需要在ssrpanel中进行配置才能使用。许多使用ssrpanel的人都卡在这一步,我也摸索了许久,以下只能以我自己在用的网易企业邮箱作为例子。

1
2
3
4
5
# 进入ssrpanel文件夹
cd /var/www/ssrpanel

# 编辑配置文件
vim .env

找到MAIL_开头的部分,网易企业邮箱的配置如下:

1
2
3
4
5
6
7
8
MAIL_DRIVER=smtp
MAIL_HOST=smtp.ym.163.com
MAIL_PORT=994
[email protected]
MAIL_PASSWORD=*************
MAIL_ENCRYPTION=ssl
[email protected]
MAIL_FROM_NAME=SSRPanel

了解更多网易企业邮箱的相关设置可以访问网易企业免费邮–帮助中心,客户端设置部分摘录如下:

客户端的设置方法
网易免费企业邮支持POP3/IMAP/SMTP服务,您可以通过电脑客户端软件更好地收发邮件,服务器地址:

POP3:pop.ym.163.com 默认端口为:110 (如勾选ssl安全链接,端口号为995)

SMTP:smtp.ym.163.com 默认端口为:25 (如勾选ssl安全链接,端口号为994)

IMAP:imap.ym.163.com 默认端口为:143 (如勾选ssl安全链接,端口号为993)

需要注意的地方:

  1. MAIL_USERNAMEMAIL_FROM_ADDRESS是一样的
  2. 如果使用的是QQ邮箱,那么MAIL_PASSWORD就不是填邮箱密码,而是需要登陆QQ邮箱网页版,进入设置 – 账户 – POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,找到下方的生成授权码
    qq邮箱生成授权码.png
    然后会提示发送短信生成授权码:
    qq邮箱发送短信生成授权码.png
    之后把这个授权码作为邮箱登陆密码填到MAIL_PASSWORD

解决问题

设置好之后可以自己实验性地注册一个账号看看能否收到注册激活邮件,如果没有收到,那么可以通过查看ssrpanel后台管理的邮件投递记录分析问题所在:

ssrpanel邮件投递记录.png

如果注册没有收到邮件,邮件投递记录提示time out

ssrpanel邮件投递提示time_out.png

一般都是邮箱配置正确,但是防火墙没有打开对应端口,可以参照前文设置防火墙一节,然后通过以下命令把对应端口加入白名单:

1
2
iptables -A INPUT -p tcp --dport 端口 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 端口 -j ACCEPT

不过有些运营商仅仅设置这些是不够的,比如:

  1. 阿里云:需要配置安全组,方法如下:进入网页版管理控制台 – 云服务器ECS – 网络和安全 – 安全组,然后在安全组上面添加规则。
  2. Digit Ocean:DO似乎限制smtp邮箱发送,可以参考这个issue:https://github.com/ssrpanel/SSRPanel/issues/965。

其他的运营商并没有过多了解,就不多言。

客户端下载

新版更新:新版本已经添加好客户端下载链接了,如果想要使用自己提供的客户端,可以按照本节步骤操作。

点击展开

安装libsodium

安装libsodium可以支持SSR的ChaCha20加密方式,如果需要用到可以安装,直接安装的方式也很简单:

1
yum -y install libsodium

也可以自己下载源码进行编译安装,不过估计一般人都是图省事,就不放方法了,有兴趣的直接网上去搜吧。

mysql改用户名和密码

有的人偷懒,跟着我的例子把数据库名,用户名还有密码都设为了ssrpanel,只在本地登录还没什么。

但是如果之后需要添加节点,那么就要设置用户为ssrpanel@%,也就是说任何地方都可以登陆了,那么这样的数据库就很容易被人爆破了,这个时候就需要改名了。

因为本来就有用户存在了,直接用root用户登陆MySQL,然后改名字就行了:

1
update mysql.user set user='新用户名' where user='ssrpanel';

改了名字就变成一个新用户了,这个时候就需要在改完之后重新授予新用户对ssrpanel数据库的操作权限:

1
GRANT ALL ON ssrpanel.* TO '新用户名'@'localhost';

如果多节点需要登陆MySQL,那么还需要设置MySQL用户的可登陆IP为%,也就是任意IP都可登陆,而不止局限于本地用户:

1
update mysql.user set host='%' where user='新用户名';

把用户名改复杂一点,这样不容易被爆破,然后再把密码改改,起码别用ssrpanel

1
UPDATE user SET password=PASSWORD("新密码") WHERE user='新用户名';

或者也可以用这条命令:

1
set password for '新用户名'@'localhost'=password('新密码');

改完记得刷新权限

1
flush privileges;

如果想新建一个用户而不是改名的话,那么就需要取消原来的用户ssrpanel所拥有的权限:

1
revoke all on ssrpanel.* from ssrpanel@localhost;

如果是想删除这个用户,那么用下面的命令

1
delete from user where user='ssrpanel' and host='localhost';

后话

为了搭建这个面板着实费了一番功夫,胖虎在发布ssrpanel的时候是有说明的,但是说的不详细,不是很了解的话,还是需要踩很多坑后才能装上去,这次装面板花了两三天才成功,主要是前期寻找解决方案花了不少时间,因为除了ssrpanelssrpanel之外,还有moess等其他优秀的面板,只是懒得试过然后再选了,所以直接敲ssrpanel了。

这次搭建完然后写这篇文章也是想分享一下经验,毕竟肯定不少人需要,只是没想到写了这么一大篇下来,这是在装好面板几天后才动手写出来的文章,难免会有疏漏,如果有人发现教程有疏漏或者安装过程中有问题,可以在下面评论,我会尽快回复。

原文:https://www.wenjinyu.me/zh/ssrpanel-shadowsocksr-ssr-users-management-monitoring/