通过 LAN 唤醒特定请求(端口?)

通过 LAN 唤醒特定请求(端口?)

有没有什么方法可以精确定制如何唤醒处于睡眠状态的 PC?

如果我勾选“启用网卡唤醒计算机”,它将在夜间不断随机唤醒。

我需要仅当来自端口 21 或 3389 的请求时才唤醒我的电脑。

如果我启用“魔包”,那么似乎没有什么可以唤醒它。

谁知道我能做什么?

答案1

我认为没有任何简单的方法可以实现这一点。

LAN 唤醒的工作原理是发送一个“魔术包”,该魔术包可以是任何包含 FF FF FF FF FF FF FF FF 的数据流,后跟设备 MAC 地址的十六次重复。

请注意,由于目标 PC 当时没有可运行的网络堆栈,因此魔术包的处理方式并不像通常那样(即解析数据包头并将其有效负载传递到堆栈中的下一级)。相反,只会扫描传入数据以查找魔术字符串,并且只要遇到该字符串,设备就会立即启动。

因此整个过程对端口一无所知。为了生成魔术包,您需要做的就是生成包含所需字节序列的数据流,并确保它通过目标设备所连接的物理线路。

如果发送魔术包的设备和要唤醒的设备被网桥或交换机隔开(这是现在最常见的情况),这通常意味着确保该数据包是一个有效的以太网帧,其目标 MAC 地址为FF:FF:FF:FF:FF:FF(广播地址)。

有一些工具可以实现这一点。对于 Linux,一个是powerwake;对于其他操作系统,您可能需要谷歌搜索。获取其中一个,指示它唤醒您的 PC(这需要您知道它的 MAC 地址),它应该会唤醒。

答案2

我不认为你能够做到。

Magic Packet 是局域网中的 UDP 广播。
通常它发送到端口 7 或 9,有时发送到 32767。
由于这是预定义端口 - 我认为您无法更改它们。

我认为如果您想继续使用此功能,您需要从启动计算机更改端口:远程端口 32762->本地端口 7。

所有路由器都包含“端口转发”功能,它允许将所有传入的(来自互联网的)UDP 数据包(在特定端口上)转发到内部 IP 地址和端口。要转发到 LAN 的广播地址,只需将端口转发规则定义为 LAN 的广播地址(例如:192.168.1.255)。确切的过程取决于您的路由器品牌和型号,并将在手册中描述。

因此,理论上我们需要将 UDP 端口(例如 32767)转发到您想要的端口(7 或 9)。

现在您需要配置远程计算机在启动 WOL 时使用其他端口。您看 - 这相当复杂。

相关内容