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

news2025/8/6 6:11:03

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

  • 1. 安装frp_notify
  • 2. Gotify 配置
  • 3. frp-notify 配置
    • 启动 frp_notify
  • 开机自启动

1. 安装frp_notify

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

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

该插件支持 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"

运行 docker-compose

docker-compose up -d --build

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

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

在这里插入图片描述

3. frp-notify 配置

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

在项目的 Releases 处下载最新的对应机器架构的包,并解压到 /opt/frp-notify 目录下,并编辑配置 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:8081",
        "app_token": "**********"         # Gotify 的通知应用 Token
      }
    }
  ]
}
[root@localhost frp_notify]# 

启动 frp_notify

命令如下:

./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,此时若有终端链接,Gotify 则会推送相关消息了:

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

开机自启动

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

在这里插入图片描述

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

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

[Service]
Type=simple
User=nobody
Group=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/opt/frp-notify start -c ./frp-notify.json -b 127.0.0.1:50080
WorkingDirectory=/opt/frp_notify/


[Install]
WantedBy=multi-user.target

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

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

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

mv ./frp_notify.service /usr/lib/systemd/system/

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

chown -R nobody:nobody /usr/local/frp_notify

再 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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/34644.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SSM之Spring注解式缓存Redis

目录 Sprig整合Redis 导入相关pom依赖 添加对应的的配置文件 IEDA安装lombok插件 引入外部多文件 applicationContext.xml的整合配置文件 redis注解式缓存 Cacheable 测试类注解 Cacheable 的测试代码 CachePut CachePut测试代码 CacheEvict CacheEvict测试代码 Spr…

如何考察候选人 Vue 技术水平?

答对这些问题,检测你是否真正掌握了Vue 请说一下响应式数据的原理 默认 Vue 在初始化数据时,会给 data 中的属性使用 Object.defineProperty 重新定义所有属性,当页面到对应属性时,会进行依赖收集(收集当前组件中的 watcher)如果…

论文阅读【8】Conditional Random Fields: An Introduction

1.概述 1.1 论文相关 这篇论文是介绍一个经典模型,条件随机场(CRF)。在很多领域中都存在序列标注任务,例如生物信息识别,计算机语言学和语音识别任务,其中自然语言处理中的词性标注任何和命名实体识别任务…

JS 数据结构:链表

单链表 每个节点中只包含一个指针域的链表称为单链表。 头结点—其指针域指向表中第一个结点的指针(头结点不是必须的,只是习惯上加上头结点,而头结点的数据域一般记录的是该链表的相关数据,如:链表长度)…

Redis-Linux中安装Redis、命令操作Redis

目录 一、Redis简介 NoSQL与SQL的区别 二、Linux上安装redis 上传并解压redis.gz 进入 redis的解压目录,执行命令 make ​编辑 修改redis为守护进程 们测试一下能否远程连接RedisDesktopManager客户端 开放6379端口 授权,允许远程连接 三、redis命…

小程序上新(2022.10.13~11.14)

20221101 【官方公告】境外主体小程序补充信息存储地区通知20221103 小程序基础库 2.27.1 更新 新增 框架 新增 xr-fame 能力,kanata 更新 详情新增 组件 map 组件新增 bindrendersuccess 属性 详情 (官方文档还查不到这个)新增 API 新增 wx.getRendererUserAgen…

tep时隔8个月迎来重大全新升级

tep此次更新,旨在从“工具”升级为“框架”,为此做了大量的代码整洁工作,重新设计了部分功能,项目脚手架也焕然一新。 功能展示 conftest.py 脚手架生成的conftest.py只有一行代码: fixture自动加载等操作都隐藏到了te…

【学习笔记22】JavaScript数组的练习题

笔记首发 一、已知一个排序好的数组 将数字按照原有顺序插入到数组内 var arr [10, 20, 30, 40, 50];var n 11;// 1. 将n插入数组中arr.push(n);// 2. 冒泡排序for (var k 0; k < arr.length - 1; k) {for (var i 0; i < arr.length - 1 - k; i) {if (arr[i] > …

antd——使用a-tree组件实现 检索+自动展开+自定义增删改查功能——技能提升

之前写后台管理系统时&#xff0c;遇到一个下面的需求&#xff0c;下面是最终完成的效果图。 实现的功能有&#xff1a; 1. 下拉 选择不同的类型——就是一个普通的select组件&#xff0c;下面并不做介绍 2. 通过关键字可以进行tree树形结构的筛选&#xff0c;然后将筛选后的…

数据结构学习笔记——查找算法

目录前言一、查找的相关概念&#xff08;一&#xff09;内查找和外查找&#xff08;二&#xff09;静态查找和动态查找&#xff08;三&#xff09;平均查找长度二、线性查找&#xff08;一&#xff09;顺序查找1、查找思想2、算法分析3、有序表的顺序查找&#xff08;二&#x…

gitlab-runner 的安装使用(含 .gitlab-ci.yml 的简单使用)

简介 GitLab Runner 是一个开源项目&#xff0c;用于运行您的作业并将结果发送回 GitLab。它与 GitLab CI 一起使用&#xff0c;GitLab CI 是 GitLab 随附的开源持续集成服务&#xff0c;用于协调作业。 简单理解就是一个服务放在那儿&#xff0c;当你提交代码时&#xff0c;…

[附源码]java毕业设计在线课程网站

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

腾讯安全SOC+能力图谱正式发布,助力政企构建闭环安全运营体系

随着云计算、人工智能、5G等新兴技术的融合发展&#xff0c;数字化转型正成为企业数字经济时代的重要发展路径。然而&#xff0c;数字化转型过程中IT架构的重塑、安全产品体系化能力不足带来的安全运营挑战&#xff0c;使得企业在业务突破上面临安全瓶颈。 面对网络安全事件频…

做一个微信小程序需要多少钱?

做一个微信小程序需要多少钱&#xff1f; 如果是选择套用小程序模板&#xff0c;自建的方式的话&#xff0c;价格是在698-3498元一年的。 如果是代建小程序的话&#xff0c;需要在自建的费用上&#xff0c;再加上1500-12000元的代建费用。 下面主要给大家讲讲698-3498元这个…

Spring依赖注入源码解析(上)

文章目录前言一、Spring中到底有几种依赖注入的方式&#xff1f;1、手动注入1.1、set方法进行注入1.2、通过构造方法进行注入2、自动注入2.1、XML的autowire自动注入2.2、Autowired注解的自动注入二、autowireByName && autowireByType核心源码分析2.1、autowireByName…

最新最全的JavaScript入门视频,包含小程序和uniapp相关的JavaScript知识学习

写在前面 我们学习JavaScript不仅可以用于web网站开发&#xff0c;也可以用于小程序&#xff0c;uniapp项目的开发&#xff0c;所以我们学习JavaScript很重要。 准备工作 我们这里学习JavaScript用的是小程序开发者工具或者uniapp开发者工具&#xff0c;所以需要你先装好这两…

基于Servlet+jsp+mysql开发javaWeb学生管理系统(学生信息、学生选课、学生成绩、学生签到考勤)

你知道的越多&#xff0c;你不知道的越多 点赞再看&#xff0c;养成习惯 如果您有疑问或者见解&#xff0c;或者没有积分想获取项目&#xff0c;欢迎指教&#xff1a; 企鹅&#xff1a;869192208 文章目录一、开发背景二、 需求分析三、开发环境四、运行效果五、开发流程工程目…

【web前端开发】HTML知识点超详细总结

文章目录什么是网页常用的浏览器及内核VScode和WebStrom使用HTML常用标签文档类型<!DOCTYPE>网页语言lang字符集title标签标题标签段落和换行标签文本格式化标签div和span标签图像标签路径相对路径同一级路径上一级路径:下一级路径绝对路径链接标签超链接标签外部链接:内…

为什么心脏长在左边?

人体各项生命活动的正常维持&#xff0c;都离不开血液循环系统输送营养和代谢废物&#xff0c;而给全身输送血液的动力器官就是心脏。可以说&#xff0c;心脏是人体的发动机。不过&#xff0c;你有没有思考过&#xff0c;为什么心脏会长在我们身体的左边呢&#xff1f; 为了解释…

css ppt操作面板 预览时其中标签定位问题

最近用网页写了一个类似PPT页面板操作功能&#xff0c;就是把文本框和图片放入操作面板后&#xff0c;手动拖动到自定义位置&#xff0c;并可以控制文本框和图片大小&#xff0c;但是在预览时位置怎么都放不对&#xff0c;可能跟我css知识不扎实有关&#xff0c;两天没解决&…