什么是 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:latest
container_name: pialert
network_mode: host
restart: unless-stopped
volumes:
- ./config:/home/pi/pialert/config
- ./db:/home/pi/pialert/db
environment:
- 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