文章

电脑定时开关机、远程开机、远程关机搭建

全链路

①云服务器:部署xxl-job

②家里路由器 frp 映射到云服务器 / 闪优物联 抓包http接口

③电脑安装web关机指令服务

④集成到ios快捷指令

上述操作可实现定时电脑开机、远程电脑开机、一键手机开机、一键手机关机等操作。

一、机器唤醒

①、基于硬件+wifi 远程唤醒

可以使用闪优物联 or 其他进行app远程唤醒

②、网卡唤醒 ether-wake

Ether-wake 是一个用于发送 Wake-on-LAN (WOL) "Magic Packets" 的命令行工具,它能够唤醒处于网络唤醒状态的设备。这个工具通常在 Linux 系统中使用,并且需要目标机器的网卡支持远程唤醒功能。用户可以通过 ethtool 命令检查网卡是否支持 WOL,如果支持,可以通过 ether-wake 命令发送特定的数据包来唤醒目标机器 1

使用 ether-wake 命令时,需要指定目标机器的 MAC 地址。命令的基本语法如下:

etherwake [选项] MAC地址

其中,MAC 地址是目标设备的物理地址,格式通常为 xx:xx:xx:xx:xx:xx。例如,要使用 eth0 网络接口唤醒 MAC 地址为 00:11:22:33:44:55 的设备,可以使用以下命令:

etherwake -i eth0 00:11:22:33:44:55

此外,ether-wake 命令还支持一些选项,如 -b 发送到广播地址,-D 增加调试信息,-i 指定使用的网卡名称,-p 添加密码到数据包中,以及 -V 显示软件版本信息 5

在使用 ether-wake 之前,需要确保目标机器的 BIOS 设置中启用了 WOL 功能,并且网络接口的 WOL 设置也被激活。例如,在某些 Linux 发行版中,可以使用以下命令来激活 WOL:

ethtool -s 网卡名称 wol g

这将设置指定网卡的 WOL 功能为启用状态 1

总的来说,ether-wake 是一个方便的工具,可以在局域网内远程唤醒支持 WOL 的设备,前提是设备和网络环境都正确配置了相应的功能

二、XXL-Job 执行Python脚本

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import paramiko

# SSH服务器的连接信息
hostname = "127.0.0.1"
port = 22
username = "admin"
password = "admin"

# 要执行的命令
command = "/usr/sbin/ether-wake -i br0 -b 80:FA:5B:00:E1:81"

# 创建SSH客户端
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

try:
    # 连接SSH服务器
    client.connect(hostname, port, username, password)

    # 执行命令
    stdin, stdout, stderr = client.exec_command(command)

    # 获取命令执行结果
    output = stdout.read().decode("utf-8")
    error = stderr.read().decode("utf-8")

    if output:
        print("命令执行结果:")
        print(output)
    if error:
        print("命令执行错误:")
        print(error)

finally:
    # 关闭SSH连接
    client.close()

三、机器关机/远程执行命令

自建web关机服务,映射到路由器或者云服务器,调用curl命令即可实现关机

/usr/sbin/curl http://192.168.68.15:8081/exec/shutdown

四、集成到ios快捷指令