• 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
    
    • 1

    修改 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"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

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

    运行 docker-compose

    docker-compose up -d --build
    
    • 1

    注:初次创建容器,可以不加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]# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    注意: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
    
    • 1
    • 2

    手动启动:若无报错,则正常启动。此时另开一个终端窗口修改 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       // 通知的操作
    
    • 1
    • 2
    • 3
    • 4

    注意:在实际写入的时候,不要加上后面的注释和空格,否则会导致启动失败
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

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

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

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

    修改名字并将系统服务配置文件 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/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

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

    在这里插入图片描述

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

    通过 daemon-reload 重载配置:

    systemctl daemon-reload
    
    • 1

    启动 frp_notify 服务:

    systemctl start frp_notify.service
    
    • 1

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

    再设置开机自启:

    systemctl enable frp_notify.service
    
    • 1

    其余操作命令如下:

    # 停止运行服务
    systemctl stop frp_notify.service
    
    # 查看服务状态
    systemctl status frp_notify.service
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

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

    在这里插入图片描述

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

  • 相关阅读:
    Vue3项目开发:配置文字两行显示,超出部分用省略号
    Nacos的API居然存在这么严重的漏洞
    Looper分析
    设计模式之单例模式应用例题
    STC51单片机29——汇编语言 取表法 流水灯
    ESP32微控制器与open62541库: 详细指南实现OPC UA通信协议_C语言实例
    uni-app:标签中对数据进行判断,看数据前中后是否含有需要的字符startsWith(),endsWith(),includes()
    Linux命令type和which的区别
    JS简单实现随机颜色验证码功能
    Modelsim实现波形比较
  • 原文地址:https://blog.csdn.net/m0_46825740/article/details/128039649