具有CLI命令和Web界面的WOL

简介

什么是 wol ?

wol 是一个命令行工具,用于发送唤醒网络上设备的 Wake-On-LANWOL)魔法包。具有命令行界面和网页界面两种功能。本文只介绍了网页界面。

主要特点

  • 功能:通过发送 Wake-On-LANWOL)魔法包来唤醒网络上的设备。
  • 界面:提供命令行界面(CLI)和网页界面,用户可以通过这两种方式轻松唤醒设备。
  • 配置:支持配置多个设备,用户可以为每台设备指定名称以便于访问,并可以列出已配置的设备。
  • Docker 支持:可以通过 Docker 运行,方便部署和管理。
  • 跨平台:支持多种操作系统,包括 LinuxmacOSWindows

用户可以通过此工具在本地网络中快速唤醒关闭的设备,适用于需要远程管理或访问的环境。过年外出的时候,可能会用上的。

准备

需要准备一个配置文件 config.yaml,示例如下:

1
2
3
4
5
6
7
8
9
10
machines:
- name: desktop
mac: "00:11:22:33:44:55"
ip: "192.168.1.100" # Optional, for status checking
- name: server
mac: "AA:BB:CC:DD:EE:FF"
ip: "192.168.1.101" # Optional, for status checking

server:
listen: ":7777" # Optional, defaults to :7777

设备配置

machines 是一个列表,包含多个设备的配置信息。

  • 每个设备的键值对:

    • name: 设备的名称,用于在命令行或网页界面中轻松识别和唤醒设备。
    • mac: 设备的 MAC 地址,必须是唯一的,格式为六组十六进制数字(如 “00:11:22:33:44:55“)。这是发送 WOL 魔法包时所需的关键标识符。
    • ip: (可选)设备的 IP 地址,用于状态检查。如果提供,系统可以监控该设备的在线状态。

服务器配置

server 定义了 WOL 服务的运行设置。

  • listen: 指定服务器监听的端口。默认情况下是 7777。该端口用于接收来自客户端的请求,例如通过网页界面唤醒设备。

安装

在群晖上以 Docker 方式安装。

默认运行 serve 命令,启用 Web 界面

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 新建文件夹 wol
mkdir -p /volume1/docker/wol

# 进入 wol 目录
cd /volume1/docker/wol

# 将 config.yaml 放入当前目录

# 运行容器
docker run -d \
--restart unless-stopped \
--network host \
--name wol \
-v $(pwd)/config.yaml:/etc/wol/config.yaml \
ghcr.io/trugamr/wol:latest \
serve

使用主机网络,以便局域网唤醒数据包在本地网络上正常工作

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
version: '3'

services:
wol:
image: ghcr.io/trugamr/wol:latest
restart: unless-stopped
network_mode: "host"
volumes:
- ./config.yaml:/etc/wol/config.yaml
command: serve # To start the web interface

使用主机网络,以便局域网唤醒数据包在本地网络上正常工作

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 wol
mkdir -p /volume1/docker/wol

# 进入 wol 目录
cd /volume1/docker/wol

# 将 docker-compose.yml 和 config.yaml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:7777 就能看到主界面

直接点 WAKE 按钮,就可以远程唤醒 config.yaml 中设置的机器了

参考文档

Trugamr/wol: 🦭 Wake up your devices with a single command or click. A Wake-On-LAN tool that works via CLI and web interface.
地址:https://github.com/Trugamr/wol

wol 🦭, a lightweight self-hosted tool to send Wake-On-LAN packets. : r/selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/1i6eiw3/wol_a_lightweight_selfhosted_tool_to_send/