通过互联网进行局域网唤醒

通过互联网进行局域网唤醒

我们学院的局域网有许多具有本地 IP 的计算机,并且有一个网关或服务器用于发送和接收流量,并且它有一个静态 IP。因此,当我离开该网络并想访问该网络中的计算机时,我知道它们的 MAC 地址和它们在该网络中的本地 IP 以及该网络的静态实时 IP。

我的系统上有 Ubuntu。我可以在本地启动系统,但我还想知道:

  • 我怎样才能通过互联网做到这一点?
  • 如何 ping 该网络中的系统?
  • 在这种情况下如何进行端口转发?或者是否有任何方法可以不必在路由器中转发端口?

我试过但它不起作用!

答案1

使用 LAN 唤醒功能发送的魔术包是不通过互联网传输. 您需要从局域网中的一台计算机发送此数据包,例如通过远程登录。

你的大学局域网中的路由器或网关似乎NAT. 除非您具有网关的管理权限(例如配置端口转发)或者您可以登录到 LAN 上的其中一台机器,否则无法访问 NAT 后面的机器。

如果网络使用 IPv6,您可以绕过 NAT,因为 IPv6 中的 NAT 并不常用(也不应该使用)。但这仍然无法帮助您发送魔术包。

答案2

您需要能够 ssh 到网关,从那里,假设您的网卡支持它,您将能够启动您的机器。

首先,确保您的网卡支持唤醒局域网。在目标机器上运行

 sudo aptitude install ethtool
 sudo ethtool eth0

如果 的输出ethtool包含类似 的行Supports Wake-on: g,则应该没问题。现在,设置机器以允许它:

sudo nano /usr/bin/wakewol

将以下行添加到刚刚创建的文件中:

#!/bin/bash
ethtool -s eth0 wol g

保存文件并运行sudo chmod 755 wakewol以使其可执行。现在,运行

sudo nano /etc/network/interfaces

并将此行添加到文件末尾:

post-down /usr/bin/wakewol

您的机器现在应该支持 wakeonlan。但是,如果不先登录网关服务器,则无法执行此操作。如下所示:

rana@local $ ssh rana@gateway
rana@gateway $ wakeonlan 01:02:03:04:05:06

只需更改01:02:03:04:05:06为您要打开的机器的实际 MAC 地址即可。假设wakeonlan网关服务器上已安装该地址。

wakeonlan通过将命令ssh传递到网关上执行可以进一步简化此过程:

ssh rana@gateway wakeonlan 01:02:03:04:05:06

参考:

http://community.linuxmint.com/tutorial/view/1062

相关内容