核心原理
无论哪种方法,其基本原理都是一样的:
- 电脑端:安装一个服务器或监听程序,这个程序会一直运行(通常需要开机自启动),等待来自手机的指令。
- 手机端:安装一个客户端App,通过局域网(Wi-Fi)或互联网(如果配置了公网访问)向电脑端程序发送指令。
- 指令执行:电脑端程序接收到指令后,调用系统命令(如
shutdown/restart)来执行开关机操作。
使用局域网控制(最简单、最推荐)
这种方法最常用,也最安全,因为你的手机和电脑连接在同一个Wi-Fi下即可。
推荐软件:Wake On Lan (WoL) + 远程桌面/SSH
这是一个组合方案,可以完美实现开关机和远程操作。
第一步:在电脑上设置“网络唤醒”(Wake On Lan, WoL)
这是实现远程开机的关键,也叫“远程唤醒”,就是让电脑在关机状态下也能“听”到来自网络的开机指令。
-
主板BIOS/UEFI设置:
- 重启电脑,在开机时按特定键(如
Del,F2,F10,Esc)进入BIOS/UEFI设置界面。 - 找到类似 "Advanced"(高级)、"Power Management"(电源管理)或 "APM" 的选项。
- 确保 "Wake On LAN" 或 "Power On By PCIE" 的选项是 "Enabled"(已启用),不同主板名称可能略有不同。
- 保存设置并退出。
- 重启电脑,在开机时按特定键(如
-
操作系统设置:
- Windows 10/11:
- 右键点击“开始”按钮,选择“设备管理器”。
- 展开“网络适配器”,找到你的主要网卡(通常是带 "Ethernet" 或 "Killer" / "Intel" 字样的)。
- 右键点击它,选择“属性”。
- 切换到“高级”选项卡,在属性列表中找到 “唤醒魔包” 或 “Wake on Magic Packet”,将其值设置为“已启用”。
- 再切换到“电源管理”选项卡,勾选 “允许计算机关闭此设备以节约电源” 和 “只允许魔术包唤醒计算机”。
- Linux (Ubuntu等):
- 终端输入
sudo ethtool -s [网卡名] wol g(sudo ethtool -s enp3s0 wol g),[网卡名]可通过ip a命令查看。 - 为了永久生效,可以修改
/etc/network/interfaces或 Netplan 配置文件。
- 终端输入
- Windows 10/11:
-
获取电脑的MAC地址:
- Windows: 打开命令提示符,输入
ipconfig /all,找到“以太网适配器”或“无线局域网适配器”下的“物理地址”,这就是MAC地址(形如XX-XX-XX-XX-XX-XX)。 - Linux: 终端输入
ip a,同样找到网卡的link/ether地址。
- Windows: 打开命令提示符,输入
第二步:在电脑上安装远程控制软件(用于关机和日常使用)
-
Windows 用户:
- TeamViewer: 功能强大,支持远程桌面、文件传输,甚至可以直接在它的设置里找到“关机”、“重启”选项,它也支持WoL,但WoL功能通常需要付费账户,不过用它的远程控制功能关机是免费的。
- RustDesk: 开源免费,类似TeamViewer,是很好的替代品。
- Windows 自带的远程桌面: 如果你是专业版/企业版Windows,可以直接用“远程桌面”连接,连接后可以在开始菜单里关机。
-
Linux 用户:
- SSH (Secure Shell): 这是最轻量级的方式,在Linux服务器上默认开启,手机上使用 Termius、JuiceSSH 等SSH客户端连接,输入
sudo shutdown -h now即可关机,sudo reboot重启。
- SSH (Secure Shell): 这是最轻量级的方式,在Linux服务器上默认开启,手机上使用 Termius、JuiceSSH 等SSH客户端连接,输入
第三步:在手机上安装App并控制
-
远程开机:
- 安装一个支持WoL的App,"Wake On Lan" (Android) 或 "Wake My Mac" (iOS)。
- 打开App,添加你的电脑,输入电脑的名称(任意起)和MAC地址。
- 确保手机和电脑在同一个Wi-Fi下,点击App里的“开机”按钮,如果一切设置正确,电脑就会启动。
-
远程关机/重启/使用:
- 打开你在电脑上安装的远程控制App(如TeamViewer、RustDesk)。
- 在手机上登录同一个账户,你的电脑会出现在设备列表中。
- 点击连接,你就能看到电脑桌面并进行操作,在远程桌面窗口的菜单栏里,通常都能找到“关机”、“重启”等选项。
使用互联网控制(更强大,可从任何地方控制)
如果你希望即使不在家,也能通过手机数据网络或任意Wi-Fi控制家里的电脑,你需要设置公网访问。
推荐方案:结合内网穿透工具
内网穿透工具能帮你把内网(家里的局域网)中的电脑“暴露”到公网上,让你从外部访问它。
-
在电脑上运行一个穿透客户端:
- frp: 这是一个非常流行的开源内网穿透工具,你需要一台有公网IP的服务器(VPS)或者使用 frp 提供的免费服务(不稳定,适合测试)。
- Ngrok: 另一个著名的内网穿透工具,有免费套餐,但免费隧道随机且不稳定。
- 向日葵/TeamViewer等: 这些软件本身提供“无人值守”功能,可以直接通过ID和密码从外网连接,相当于它们帮你处理了穿透的复杂步骤。
-
设置流程(以frp为例):
- 在你的VPS上运行
frps(服务端)。 - 在你的电脑上运行
frpc(客户端),并配置好要映射的端口(比如远程桌面端口3389,SSH端口22)。 - 这样,你就可以通过
VPS的IP:映射的端口来访问你家里的电脑了。
- 在你的VPS上运行
-
手机端操作:
- 开机:如果穿透工具支持WoL,或者你将WoL的指令端口也进行了映射,就可以从外部WoL开机,但这比较复杂,更简单的方式是...
- 使用智能插座:将电脑的电源插在智能插座上,通过手机App(如TuyaSmart)远程给智能插座断电再通电,可以模拟一次硬重启,实现“远程开机”,这是最简单粗暴但非常有效的远程开机方案。
- 关机/使用:和局域网方法一样,通过外网IP连接你的远程桌面或SSH,然后进行关机操作。
使用智能语音助手(如小爱同学、天猫精灵)
这是一个更“酷炫”的玩法,通过语音指令来控制。
- 前提:你的手机和电脑必须在同一个局域网内。
- 实现方式:
- 方案A(推荐):使用支持语音指令的远程控制软件,如 向日葵,你可以设置一个语音指令,小爱同学,让我的电脑关机”,小爱同学会通过物联网平台向你的电脑发送关机指令。
- 方案B(DIY):使用 Home Assistant 或 OpenHAB 等智能家居系统,将你的电脑作为一个设备接入,然后创建一个自动化场景,当你对手机说某个指令时,触发这个场景,场景中执行一个“网络命令”来关机电脑,这需要一定的技术能力。
总结与对比
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 局域网控制 (WoL+远程桌面) | 简单、安全、免费、无需公网IP | 必须手机和电脑在同一Wi-Fi下 | 家庭、办公室内最常用、最推荐的方法 |
| 互联网控制 (内网穿透) | 功能最强大、可随时随地控制 | 设置复杂、可能需要付费VPS、有安全风险 | 需要从外部(如公司)控制家里电脑的极客或专业人士 |
| 智能语音助手 | 方便、酷炫、解放双手 | 依赖特定软件和平台、设置相对复杂、可能不灵敏 | 追求科技感、喜欢语音交互的用户 |
| 智能插座 | 最简单的远程开机方案 | 只能实现硬重启(模拟断电)、无法软开机 | 对电脑没有特殊要求,只想能远程“启动”就行 |
给新手的最佳实践建议
如果你是第一次尝试,我强烈建议你从 方法一(局域网控制) 开始:
- 确保电脑和手机连着同一个Wi-Fi。
- 按照步骤,在电脑BIOS和系统中开启“网络唤醒”(WoL)。
- 记下电脑的MAC地址。
- 在手机上安装一个WoL App(如 "Wake On Lan"),测试一下远程开机。
- 在电脑上安装 TeamViewer 或 RustDesk,测试一下远程桌面和关机功能。
当你熟练掌握了局域网控制后,如果觉得不够用,再挑战更复杂的互联网控制方法。
