frp篇---frp-notify + Gotify 实现 FRP 用户上线通知

1. 安装frp_notify

一个专注于消息通知的 frp server manager plugin 实现,让你对进入 frps 的连接了如指掌,不再裸奔。

以下操作都是在服务器上,frp-notify 和 frps在同一台电脑上

项目链接如下:
https://github.com/arugal/frp-notify/

下载后放置在 /opt 目录下

该插件支持 log日志、DingTalk、WxWork、飞书、Gotify 形式的消息通知,基本涵盖了主流的几大通知渠道,可在 frp-notify.json 文件中按需配置通知插件,同时也支持配置多个插件,多渠道通知。

注:本教程将使用 frp-notify 插件配合 Gotify 通知一起使用,若不使用 Gotify 作为消息通知的话,可略过相关 Gotify 的配置操作。并前往该项目查看其它通知相关配置。

2. Gotify 配置

在使用 frp-notify 插件之前,我们需安装 Gotify ,其项目地址如下:

https://github.com/gotify/server

其使用说明文档如下:

https://gotify.net/docs/

此处我使用 docker-compose 安装运行的 Gotify ,若未安装 Docker 可使用二进制文件运行,其文档中有相关说明。

先创建一个待映射到容器中的目录:(目录位置可自行修改

mkdir -p /opt/docker_gotify/gotify_data

修改 docker-compose

version: "3"

services:
  gotify:
    image: gotify/server
    ports:
      - 80:80
    environment:
      - GOTIFY_DEFAULTUSER_NAME=admin
      - GOTIFY_DEFAULTUSER_PASS=admin
    volumes:
      - "./gotify_data:/app/data"

注意:外部的80端口可以自行修改,容器内部的80端口不可修改
 
在这里插入图片描述

运行 docker-compose

docker-compose up -d --build

注:初次创建容器,可以不加build

在这里插入图片描述 

此处是将本地的 80 端口映射到容器中的 80 端口,本地的端口可自定义修改。接下来防火墙或安全组放通 80 端口并浏览器访问,即可使用账号:admin 和密码:admin 登录(登录后强烈建议修改账号和密码),点击 APPS 创建一个通知应用,创建成功后记录该应用的 Token 字段:

在这里插入图片描述

3. frp-notify 配置

此处 frp-notify 插件放置的目录为:/opt,用户可自主选择所放置目录,其余操作仅需将该目录路径修改即可。

在项目的 Releases 处下载最新的对应机器架构的包,并解压到 /opt 目录下,并编辑配置 frp-notify.json 文件,删除其余通知字段,保留并设置如下:

[root@localhost frp_notify]# vim frp-notify.json 
[root@localhost frp_notify]# cat frp-notify.json 
{
  "blacklist": [
  ],
  "whitelist": [
  ],
  "notify_plugins": [
    {
      "name": "gotify",
      "config": {
        "server_proto": "http",
        "server_addr": "127.0.0.1:80",    //此处的80端口对应外部端口号,如果上面修改则需要修改对应的数字
        "app_token": "**********"         // Gotify 的通知应用 Token
      }
    }
  ]
}
[root@localhost frp_notify]# 

注意:frp-notify.json 不能有注释,不能有空格

启动 frp_notify

命令如下:

cd /opt/frp-notify-0.3.0
./frp-notify start -c ./frp-notify.json -b 127.0.0.1:50080

手动启动:若无报错,则正常启动。此时另开一个终端窗口修改 FRPS 客户端配置文件, 在 frps.ini 文件中添加如下字段:

frps.ini中加入

[plugin.frp-notify]
addr = 127.0.0.1:50080                             // frp-notify 地址
path = /handler                                    // frp-notify url, 固定配置
ops = Login,NewProxy,NewWorkConn,NewUserConn       // 通知的操作

注意:在实际写入的时候,不要加上后面的注释和空格,否则会导致启动失败
frps.ini 中加入的内容直接拷贝,不需要修改,但是要删除注释和空格

在这里插入图片描述

重启 FRPS,此时若有终端链接,Gotify 则会推送相关消息了:

至此,frp_notify + Gotify 的 FRP 用户上线消息通知就完成了,接下来就完善一下后续的开机自启以及其它操作吧!

4. 开机自启动

上述虽然成功运行了 frp_notify 服务,但是会占用一个终端窗口,下面通过 system 服务使其开机自启动,在 frp_notify 项目中给了一份系统服务配置文件 frp_notify.service,

在这里插入图片描述

下面我们就这个系统服务配置文件进行简单修改,最终如下:

[Unit]
Description=Frp notify service
After=network.target

[Service]
Type=simple
User=xxxx  //此处我用的是root
Group=xxxx  //此处我用的是root
Restart=on-failure
RestartSec=5s
ExecStart=/opt/frp-notify-0.3.0/frp-notify start -c /opt/frp-notify-0.3.0/frp-notify.json -b 127.0.0.1:50080
WorkingDirectory=/opt/frp-notify-0.3.0/


[Install]
WantedBy=multi-user.target

修改如下:
在这里插入图片描述

其中,相关修改字段说明如下:

Group:守护运行程序的用户组。
ExecStart:对相关运行命令修改,具体启动路径以服务所放置的目录修改,增加 --log-level error 字段以修改日志输出等级。
WorkingDirectory:服务所在的工作目录,指定后后面的配置文件可使用相对路径指定,否则,请使用绝对路径。

修改名字并将系统服务配置文件 frp_notify.service 移动到相关目录下:

# 1.进入相关目录
cd frp-notify-0.3.0/system/
# 2.修改了名字。即
mv frp-notify.service  frp_notify.service   # 将 - 变成了 _(这个看个人意愿)
# 3.移动位置
mv ./frp_notify.service /usr/lib/systemd/system/

文件移动完成,修改一下 frp-notify 目录及服务文件的所属用户与用户组信息:

sudo chown root:root -R /opt/frp-notify-0.3.0

在这里插入图片描述

注意: root:root 必须和 frp_notify.service里面User,Group用户名组别一致。
/opt/frp-notify-0.3.0 是放置路经,根据自己的路经修改

通过 daemon-reload 重载配置:

systemctl daemon-reload

启动 frp_notify 服务:

systemctl start frp_notify.service

若无报错,则服务启动成功。

再设置开机自启:

systemctl enable frp_notify.service

其余操作命令如下:

# 停止运行服务
systemctl stop frp_notify.service

# 查看服务状态
systemctl status frp_notify.service

在这里插入图片描述

最后通知界面如下:
打开gotify

在这里插入图片描述

参考:
https://www.isisy.com/1380.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心惠天意

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值