ssh 进入 Android 发送 WOL 数据包

Mat*_* Vk 5 ssh android wake-on-lan

我想远程唤醒我的 NAS 服务器,但我的路由器阻止了 WOL 数据包。我想我可以通过 ssh 进入我们的 androidTV 盒子,然后在 LAN 上从那里发送 WOL 数据包来规避这一点。我可以通过 ssh 进入 androidTV,但无法发送 WOL 数据包。是否可以对 androidTV 运行图形 ssh 会话,然后使用 Play 商店中的 WOL 应用程序之一?或者有什么方法可以从终端使用 WakeOnLan 应用程序?

Zyt*_*hyr 1

当我试图实现同样的目标时,我已经找到了解决方案。

问题: 我需要使用 LAN 唤醒 (WoL) 命令远程打开家里的服务器电源。为了使 WoL 可靠地工作,需要使用 LAN 内的 PC 来发送 WoL 命令,而不是远程 PC。我不太明白其中的原因,但这与设备断电后路由器清除ARP表缓存有关。在我们的例子中,服务器已关闭,但我们想要远程打开它。有关更多详细信息,请阅读此处:https://serverfault.com/questions/161560/how-to-get-wake-on-lan-working/349783#349783

解决方案 您可以在 LAN 内设置一个设备,该设备可以向已关闭电源的服务器发送 WoL 命令。实现此目的的一种方法是使用运行 SSH 服务器的已 root 的 Android 设备。您可以使用SSH远程登录Android设备,然后发送WoL命令。

我使用的步骤

  1. Root Android 设备并确保您已安装BusyBox
  2. 在 Android 上安装 SSH 服务器。https://android.stackexchange.com/questions/9905/is-there-some-ssh-server-for-android。我用的是SSHDroid。
  3. 使用 SSH 远程登录您的 Android 设备。前任:ssh -p 2222 root@xxx.xxx.x.xxx
  4. 使用 发送 WoL 命令ether-wake -b -i wlan0 XX:XX:XX:XX:XX:XX。参考:https ://forum.xda-developers.com/showthread.php?t=2495288
  5. 可以使用以下示例一次性组合步骤 3 和 4:ssh -p 2222 root@xxx.xxx.x.xxx "su -c ether-wake -b -i wlan0 XX:XX:XX:XX:XX:XX"

笔记:

  • 上述步骤可能因设备类型而异。更新步骤适用于 Android 设备,但非 Android 设备也可以使用相同的原理。
  • 在 Android 上,您不能使用该wakeonlan命令。你必须使用ether-wake命令。这是因为 BusyBox 没有安装wakeonlan
  • 您必须具有 sudo 或 root 权限才能发出ether-wake命令