设置指南
1. Wake-on-LAN(电脑设置)
魔术包可以唤醒已关机或睡眠的电脑,但前提是它的网卡仍然有电并在监听。请使用网线:Wi-Fi 很少能用于唤醒。
Linux
在 BIOS/UEFI 中开启 Wake on LAN(名称各不相同:Wake on LAN、Power On By PCI-E、Resume by PCI-E)。如果有 ErP、EuP 或深度睡眠选项,请将其关闭,因为它会切断网卡的供电。
找到网络接口的名称(例如 enp8s0):
ip -br link
检查 Wake-on 设置,应显示 g:
sudo ethtool <iface> | grep Wake-on
将其开启(重启后会重置):
sudo ethtool -s <iface> wol g
若要在 NetworkManager 下重启后仍保持有效(请替换连接名称,参见 nmcli connection show):
sudo nmcli connection modify "<connection>" 802-3-ethernet.wake-on-lan magic
Windows
在 BIOS/UEFI 中开启 Wake on LAN(名称各不相同:Wake on LAN、Power On By PCI-E、Resume by PCI-E)。如果有 ErP、EuP 或深度睡眠选项,请将其关闭,因为它会切断网卡的供电。
打开设备管理器,双击你的网络适配器,进入“电源管理”选项卡:勾选“允许此设备唤醒计算机”和“只允许幻数据包唤醒计算机”。
在同一窗口的“高级”选项卡中:将“Wake on Magic Packet”设为“已启用”(如果列出了该项)。
关闭快速启动:控制面板 → 电源选项 → 选择电源按钮的功能 → 更改当前不可用的设置 → 取消勾选“启用快速启动”。开启快速启动时,已关机的电脑常常会忽略魔术包。
macOS
打开“系统设置” → “电池”(MacBook)或“节能”(台式 Mac)→ “选项”,开启“网络唤醒”。使用有线网络唤醒效果最好:MacBook 请用 USB-C 或雷雳以太网适配器,并保持接通电源。通过 Wi-Fi 睡眠的 Mac 常常会忽略魔术包。
使用 Wi-Fi 时,还要为你的网络关闭“私有 Wi-Fi 地址”(系统设置 → Wi-Fi → 详细信息),否则 Mac 会使用另一个 MAC 地址。下面列表中的“Ethernet Address”就是各端口的 MAC 地址。
在 WakeDeck 中,用电脑的 MAC 地址添加设备。查找方法:
Linux
ip -br link
Windows
ipconfig /all
macOS
networksetup -listallhardwareports
广播地址:你所在网络的最后一个地址,例如 192.168.1.x 网络对应 192.168.1.255(默认的 255.255.255.255 在同一网络中也可用)。端口:9。
2. 通过 SSH 远程关机(可选)
请把 PASTE_KEY_LINE_FROM_APP 替换为 WakeDeck 的 SSH 密钥界面中显示的密钥行。
应用使用自己的密钥登录,绝不使用密码。电脑需要运行 SSH 服务器,并且必须添加应用的公钥。下面的命令已经包含了你的密钥。
Linux
安装并启动 SSH 服务器(以 Debian/Ubuntu 为例):
sudo apt install openssh-server && sudo systemctl enable --now ssh
在 Fedora、Arch 或 SteamOS 上,服务名称是 sshd:
sudo systemctl enable --now sshd
把应用的密钥添加到你的用户。这一行会把密钥限制为只能执行关机命令:
mkdir -p ~/.ssh && chmod 700 ~/.ssh && echo 'PASTE_KEY_LINE_FROM_APP' >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
允许无需密码关机。运行下面的命令,然后添加其下方的那一行(替换 youruser,并用 which shutdown 确认路径):
sudo visudo -f /etc/sudoers.d/wakedeck
youruser ALL=(ALL) NOPASSWD: /usr/bin/shutdown
Windows
以管理员身份打开 PowerShell,安装并启动 OpenSSH 服务器:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0; Start-Service sshd; Set-Service -Name sshd -StartupType Automatic
管理员账户:添加密钥并收紧文件权限(否则 SSH 会忽略该文件):
Add-Content -Force -Path "$env:ProgramData\ssh\administrators_authorized_keys" -Value 'PASTE_KEY_LINE_FROM_APP'
icacls.exe "$env:ProgramData\ssh\administrators_authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
普通账户则:把密钥行放到 C:\Users\NAME\.ssh\authorized_keys。
如果仍被拒绝:请检查防火墙是否允许 TCP 端口 22(OpenSSH 功能通常会自动添加规则),以及该账户不是 Microsoft Entra ID 账户,此类账户无法使用密钥。
macOS
开启 SSH 服务器:系统设置 → 通用 → 共享 → 远程登录,并允许你的用户。
把应用的密钥添加到你的用户。这一行会把密钥限制为只能执行关机命令:
mkdir -p ~/.ssh && chmod 700 ~/.ssh && echo 'PASTE_KEY_LINE_FROM_APP' >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
允许无需密码关机。运行下面的命令,然后添加其下方的那一行(替换 youruser):
sudo visudo -f /etc/sudoers.d/wakedeck
youruser ALL=(ALL) NOPASSWD: /sbin/shutdown
在设备的编辑界面中填写主机(IP 或名称)、SSH 用户(你在电脑上的账户名)和端口(22)。点按“立即关机”。第一次连接时,请确认显示的指纹与电脑的一致,然后点按“信任”。电脑的指纹:
Linux
ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub
Windows
ssh-keygen -lf $env:ProgramData\ssh\ssh_host_ecdsa_key.pub
macOS
ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub
“电脑拒绝了该 SSH 密钥”:密钥或用户名有误。“无法连接”:电脑已关机,或主机、端口、防火墙有误。“电脑返回了错误”:在 Linux 或 macOS 上通常是 sudoers 规则的问题。“电脑的 SSH 密钥已更改”:电脑被重新安装,或其 SSH 密钥被重新生成;只有在你预料到这一点时才信任新密钥。
3. 离家在外(VPN)
在家庭网络之外,你首先需要一种进入家庭网络的方式,例如 WireGuard 或 Tailscale VPN。魔术包是广播,而许多 VPN 不会转发广播。请在设备中填写你网络的广播地址(例如 192.168.1.255)。如果远程唤醒仍然不起作用,通常的解决办法是在家里放一台常开的小设备,由它代你发送数据包(支持 Wake-on-LAN 的路由器,或树莓派)。只要电脑的地址可以访问,通过 SSH 远程关机就可以在 VPN 下使用。
远程问题:“没有网络或 VPN 连接”表示手机没有通往该地址的路由,请先连接 VPN。“找不到广播地址”表示设备中的名称或地址无法解析。VPN 也可能接收了数据包却从未送达:应用无法得知,因为魔术包没有回复。请确认电脑是否开机,并查看它在列表中的状态。