android - ssh 进入 Android 发送 WOL 数据包

标签 android ssh wake-on-lan

<分区>

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

最佳答案

我已经想出了解决方案,因为我正在尝试实现同样的目标。

问题: 我需要使用 Wake on 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. 使用 ether-wake -b -i wlan0 XX:XX:XX:XX:XX:XX 发送 WoL 命令。引用: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 上你不能使用 wakeonlan command .你必须使用 ether-wake command .这是因为 BusyBox 没有安装 wakeonlan
  • 您必须具有 sudo 或 root 权限才能发出 ether-wake 命令

关于android - ssh 进入 Android 发送 WOL 数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31761274/

相关文章:

linux - 并行执行多个 scps 时,为什么 scp 偶尔会失败?

java - Ping 机器会唤醒它吗?

php - 如何使用 PHP 脚本唤醒 PC?

android - 改变某部分字符串的edittext的输入类型

java - 使用json API上传文件android

java - 如何将一个字符串元素与字符串元素数组进行比较?

java - 每天在特定时间运行代码

C#:重定向已在运行的进程的标准输出

php - 使用PHP通过ssh执行shell命令

java - Java 中的 Android 局域网唤醒