一个专注于消息通知的 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 的配置操作。并前往该项目查看其它通知相关配置。
在使用 frp-notify 插件之前,我们需安装 Gotify ,其项目地址如下:
https://github.com/gotify/server
其使用说明文档如下:
此处我使用 docker-compose 安装运行的 Gotify ,若未安装 Docker 可使用二进制文件运行,其文档中有相关说明。
先创建一个待映射到容器中的目录:(目录位置可自行修改)
mkdir -p /opt/docker_gotify/gotify_data
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
字段:
此处 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 不能有注释,不能有空格
命令如下:
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 用户上线消息通知就完成了,接下来就完善一下后续的开机自启以及其它操作吧!
上述虽然成功运行了 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