网络入侵探测器Pi.Alert

什么是 Pi.Alert ?
Pi.Alert是WIFI/LAN入侵探测器。通过扫描连接到您的
WIFI/LAN的设备,提醒您未知设备的连接。它还警告断开“始终连接”的设备。
Pi.Alert 使用了三种扫描方式
- 方式1:arp-scan。
arp扫描系统实用程序用于使用arp帧搜索网络上的设备。 - 方式2:Pi-hole。:此方法是可选的,是对方法 1 的补充。如果
Pi-hole DNS服务器处于活动状态,则Pi.Alert会检查其活动,查找方式1未检测到的使用DNS的活动设备。 - 方式3:dnsmasq。:此方法是可选的,是对以前方法的补充。如果
DHCP服务器dnsmasq处于活动状态,Pi.Alert会检查DHCP租约(分配的地址),以查找其他方法未发现的活动设备。
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 pi.alert ,选择第一个 jokobsk/pi.alert,版本选择 latest。
细分的版本号是
23.5.7,但实际上23.5.7、23.5、23、latest是同一个版本;

卷
在 docker 文件夹中,创建一个新文件夹 pialert,并在其中建两个子文件夹,分别是 config 和 db
| 文件夹 | 装载路径 | 说明 |
|---|---|---|
docker/pialert/config | /home/pi/pialert/config | 存放设置 |
docker/pialert/db | /home/pi/pialert/db | 存放数据库 |

网络
勾选 使用与 Docker Host 相同的网络

环境
| 可变 | 值 |
|---|---|
TZ | 时区设置,默认值 Europe/London |
PORT | 应用的访问端口,默认值 20211 |
HOST_USER_ID | 用户ID,默认值 1000 |
HOST_USER_GID | 用户组ID,默认值 1000 |
一般只要修改 TZ 为 Asia/Shanghai 就可以了

权限
要避免出现权限问题,可以勾选 使用高权限执行容器
老苏没有勾选,似乎也能正常工作;

命令行安装
如果你熟悉命令行,可能用 docker cli 更快捷
# 新建文件夹 pialert 和 子目录
mkdir -p /volume2/docker/pialert/{config,db}# 进入 pialert 目录
cd /volume2/docker/pialert# 运行容器
docker run -d \--restart unless-stopped \--name pialert \--network=host \-v $(pwd)/config:/home/pi/pialert/config \-v $(pwd)/db:/home/pi/pialert/db \-e TZ=Asia/Shanghai \-e PORT=20211 \-e HOST_USER_ID=1000 \-e HOST_USER_GID=1000 \jokobsk/pi.alert:latest
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
version: '3'services:pialert:image: jokobsk/pi.alert:latestcontainer_name: pialertnetwork_mode: hostrestart: unless-stoppedvolumes:- ./config:/home/pi/pialert/config- ./db:/home/pi/pialert/dbenvironment: - TZ=Asia/Shanghai - PORT=20211- HOST_USER_ID=1000- HOST_USER_GID=1000
然后执行下面的命令
# 新建文件夹 pialert 和 子目录
mkdir -p /volume2/docker/pialert/{config,db}# 进入 pialert 目录
cd /volume2/docker/pialert# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d
运行
在浏览器中输入 http://群晖IP:20211 就能看到主界面

只有两个设备显然是不正确的,我们可以选择手动编辑 config 目录下的 pialert.conf 文件
修改前,记得备份文件,当然,万一改出问题了也不用太担心,大不了重来呗

但是更简单的方式是在 settings 中进行修改
在
settings中修改,会自动生成备份文件;
显然,系统默认启用了方式1扫描,也就是启用了 Enable ARP scan,但是 SCAN_SUBNETS 显然不正确

老苏的 IP 应该是 192.168.0.0/24 而不是 192.168.1.0/24,至于网络接口是 eth0,eth1 ,也是一头雾水,这需要通过 iwconfig 在容器内查询
# 进入容器
docker exec -it --user root pialert /bin/bash# (国内用户)改阿里源
sed -i "s@http://deb.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list# 安装 wireless-tools 包
apt-get update && apt-get install -y wireless-tools# 查找接口名称
iwconfig

看起来应该是 eth0 了

前面输入 192.168.0.0/24,后面输入 eth0,然后点 Add 按钮,下拉到底部点 Save 按钮

会提示生成了备份文件

然后点 Enable ARP scan 后面的 ▶️ 按钮开始扫描

回到 Devices,局域网的设备就都显示出来了

更多的功能就留给大家自己探索了
参考文档
pucherot/Pi.Alert: WIFI / LAN intruder detector. Check the devices connected and alert you with unknown devices. It also warns of the disconnection of “always connected” devices
地址:https://github.com/pucherot/Pi.Alert
jokob-sk/Pi.Alert: 💻🔍 WIFI / LAN intruder detector. Scans for devices connected to your network and alerts you if new and unknown devices are found.
地址:https://github.com/jokob-sk/Pi.Alert
jokobsk/pi.alert - Docker Image | Docker Hub
地址:https://registry.hub.docker.com/r/jokobsk/pi.alert
Pi.Alert/README.md at main · jokob-sk/Pi.Alert · GitHub
地址:https://github.com/jokob-sk/Pi.Alert/blob/main/dockerfiles/README.md
相关文章:
网络入侵探测器Pi.Alert
什么是 Pi.Alert ? Pi.Alert 是 WIFI/LAN 入侵探测器。通过扫描连接到您的 WIFI/LAN 的设备,提醒您未知设备的连接。它还警告断开“始终连接”的设备。 Pi.Alert 使用了三种扫描方式 方式1:arp-scan。arp扫描系统实用程序用于使用 arp 帧搜索…...
Flask项目打包为exe(附带项目资源,静态文件)
1.在项目根目录创建my_app.spec文件,内容如下: # -*- mode: python ; coding: utf-8 -*-block_cipher Nonea Analysis([server.py], # flask入口pathex[],binaries[], datas[("E:/**/templates","/templates"),("E:/**/s…...
无代码开发(BIP旗舰版-YonBuilder)
目录 我的应用 新建领域 菜单管理 应用构建 新建应用 对象建模 新增业务对象 新增业务实体 页面建模 新增页面 编辑页面 发布管理 我的应用 角色管理 yonbuilder开发平台,提供标准服务和专业开发服务; 本篇文章只演示标准服务的可视化应用…...
誉天程序员-瀑布模型-敏捷开发模型-DevOps模型比较
文章目录 2. 项目开发-开发方式2.1. 瀑布开发模型2.2. 敏捷开发模型2.3. DevOps开发模型2.4. 区别 自增主键策略1、数据库支持主键自增自增和uuid方案优缺点 2. 项目开发-开发方式 由传统的瀑布开发模型、敏捷开发模型,一跃升级到DevOps开发运维一体化开发模型。 …...
flutter:占位视图(骨架屏、shimmer)
前言 有时候打开美团,在刚加载数据时会显示一个占位视图,如下: 那么这个是如何实现的呢?我们可以使用shimmer来开发该功能 实现 官方文档 https://pub-web.flutter-io.cn/packages/shimmer 安装 flutter pub add shimmer示例…...
【雕爷学编程】MicroPython动手做(30)——物联网之Blynk 4
知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…...
python-网络爬虫.BS4
BS4 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库, 它能够通过你喜欢的转换器实现惯用的文档导航、查找、修改文档的方 式。 Beautiful Soup 4 官方文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/ 帮助手册&…...
C# 开发规范
控件命名规则 控件名简写 控件名简写LabellblTextBoxtxtButtonbtnLinkButtonlnkbtnImageButtonimgbtnDropDownListddlListBoxlstDataGriddgDataListdlCheckBoxchkCheckBoxListchklsRadioButtonrdoRadioButtonListrdoltImageimgPanelpnlCalendecldAdRotatorarTabletblRequiredF…...
【uniapp 样式】使用setStorageSync存储历史搜索记录
<template><view><view class"zhuangbox u-flex"><u--inputplaceholder"请输入关键字搜索"border"surround"shapecircleprefixIcon"search"prefixIconStyle"font-size: 22px;color: #909399"v-model&q…...
git remote add origin详解
git remote add origin详解_笔记大全_设计学院 一、git remote add origin的基础 使用“git remote add origin”指令,可以轻松地将本地项目连接到远程Git仓库 二、git remote add origin的用法 “git remote add origin”指令可以使用以下语法: git…...
附录1-将uni-app运行到微信开发者工具
目录 1 在manifest.json写入AppID 2 配置微信开发者工具的安装路径 3 微信开发者工具的安全设置 4 运行 5 修改一些配置项 1 在manifest.json写入AppID 2 配置微信开发者工具的安装路径 如果你忘了安装在哪里了,可以右键快捷方式看一下属性 在运行设置…...
【LeetCode】根据二叉树创建字符串
根据二叉树创建字符串 题目描述算法分析编程代码 链接: 根据二叉树创建字符串 题目描述 算法分析 当单纯的按照前序遍历输出后,我们只要对()进行一些修改就好 编程代码 /*** Definition for a binary tree node.* struct TreeNode {* …...
【图论】强连通分量
一.定义 强连通分量(Strongly Connected Components,简称SCC)是图论中的一个概念,用于描述有向图中的一组顶点,其中任意两个顶点之间都存在一条有向路径。换句话说,对于图中的任意两个顶点u和v,…...
网络:VRP介绍
1. VRP 华为使用的通用路由平台,华为的交换机、防火墙、安全设备、无线和路由器的命令行几乎一样。 2. VRP分为用户视图、系统视图。 3. 用户视图 user view <Huawei>:其中<>代表的是用户视图,Huawei是设备的名称。命令比较少。…...
iOS - 解压ipa包中的Assert.car文件
项目在 Archive 打包后,生成ipa包 将 xxx.ipa文件修改为zip后缀即 xxx.zip ,然后再双击解压,会生成一个 Payload 文件夹,里面一个文件 如下图: 然后显示改文件的包内容: 解压 Assets.car 文件的方式&…...
【Jmeter】配置不同业务请求比例,应对综合场景压测
目录 前言 Jmeter5.0新特性 核心改进 其他变化 资料获取方法 前言 Jmeter 5.0这次的核心改进是在许多地方改进了对 Rest 的支持,此外还有调试功能、录制功能的增强、报告的改进等。 我也是因为迁移到了Mac,准备在Mac上安装Jmeter的时候发现它已经…...
TCP拥塞控制详解 | 1. 概述
网络传输问题本质上是对网络资源的共享和复用问题,因此拥塞控制是网络工程领域的核心问题之一,并且随着互联网和数据中心流量的爆炸式增长,相关算法和机制出现了很多创新,本系列是免费电子书《TCP Congestion Control: A Systems …...
使用IPSEC VPN 在有防火墙的场景和有NAT转换的场景下实现隧道通信实验
目录 一、在有防火墙的场景 1、为所有设备配置对应ip地址: 2、进入两个防火墙实现公网互通 3、测试公网是否互通 4、进入SW1配置IPSEC VPN 5、进入SW2配置IPSEC VPN 6、配置策略方向ESP的流量 7、尝试使用PC1访问PC2 二、在有NAT地址转换的场景 1、为新增加…...
Go和Java实现适配器模式
Go和Java实现适配器模式 我们通过下面的实例来演示适配器模式的使用,其中,音频播放器设备只能播放 mp3 文件,通过使用一个更高级 的音频播放器来播放 vlc 和 mp4 文件。 1、适配器模式 适配器模式是作为两个不兼容的接口之间的桥梁。这种…...
接口相似数据结构复用率高?Apipost这招搞定!
在API设计和开发过程中,存在许多瓶颈,其中一个主要问题是在遇到相似数据结构的API时会产生重复性较多的工作:在每个API中都编写相同的数据,这不仅浪费时间和精力,还容易出错并降低API的可维护性。 为了解决这个问题&a…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...
数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...
Sklearn 机器学习 缺失值处理 获取填充失值的统计值
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...
