Wake On WAN / Internet上唤醒你的局域网电脑

来源:互联网 发布:协方差矩阵 对角线 编辑:程序博客网 时间:2024/04/28 09:51

Wake On WAN, 是的, 不是Wake On Lan. 在Internet上远程唤醒你家中的PC.

硬件需求:
1. 支持Wake On Lan(WOL)的电脑.
2. 一个路由器, 需要支持以下的特性

2.1 固定端口映射
2.2 支持MAC/IP绑定
2.3 支持动态DNS客户端

软件要求:
可以支持唤醒数据包发送到软件, 本文使用Android上的Wake On Lan, 可以通过手机唤醒.

步骤:
1. 设置被唤醒的电脑, 打开主板的WOL唤醒支持, 我使用的是IBM X21笔记本, 在主板的的BIOS设置里面可以找到WOL选项, 选择打开即可.

2. 打开要被唤醒的电脑, 查看网卡MAC地址. 一般WOL只支持有线网卡, 请不要搞错网卡.

我的笔记本安装的是Debian系统, 使用root用户登入, 输入命令: ifconfig即可看到网卡eth0的MAC地址(HWaddr).
如果是Windows系统, 可以打开命令行(运行 -> CMD), 输入ipconfig /all命令查看有线网卡的物理地址

3. 测试WOL是否成功.

Android手机上搜索安装Wake On Lan软件, 在Wake选项卡的表单中输入上面获得的MAC地址和一个名字, 如下图. 如果使用其他软件, 可以参考设置. IP地址使用本地IP段的广播IP, 软件自动设置.

先把要被唤醒的电脑关机, 网线和电源都保持连接好. 点”Send Wake Packet”按钮发送特殊的数据包, 留意你想唤醒的电脑是否自动通电开始启动, 如果是的话, 恭喜你, 你已经成功获得Wake On Lan的成就了!

如果没有成功被启动起来, 请先检查手机是否和电脑同在一个路由的局域网中(不要告诉你用的是手机网络来发送了), 如果网络环境没有问题, 那就要检查MAC地址是否有抄错(不是WIFI网卡的MAC哦, 移动要有线网卡的), 还有主板的WOL选项是否正确被打开.

4. 设置动态域名

要实现Wake on WAN, 必须要能够在茫茫的IP云海中找到你家中的那个路由所分配到的IP地址, 拨号IP一直在变化, 所以我们只能用动态域名服务器来自动找到我们自己的路由. 如果你是高富帅, 家里是静态IP的, 可以跳过这步.

进入路由设置页面(如何进入请自己找路由说明书, 或者如果你运气比较好, 在路由的标签上都会写着进入的地址和帐号密码). 俺家用的是Fast的FW300R, 进入后左边的菜单即有一项动态DNS , 里面只支持花生壳的动态域名服务, 注册一个花生壳的帐号, 把帐号密码都填写到路由设置页面上保持, 提示连接成功即可.

切换到路由的运行状态页面, 查看WAN口状态的IP地址, 在电脑上PING一下刚才注册获得的动态域名: 运行 -> ping xxxxx.oicp.net -t, 查看解析结果是否和路由的WAN口IP地址一致, 一致即可进入下一步.

5. 设置映射

现在, 你已经能在Internet上找到你的路由了, 也仅仅是找到了路由, 你还不能直接通过路由访问到你的局域网的机器, 当然你的开机数据包也不能通过路由转发到你的局域网电脑上. 下面开始设置路由映射.

在路由的转发规则上, 设定一个端口(或端口范围), 转发到内网需要远程开机的电脑IP上去, 端口一般选用高位端口, 可以减少被墙的可能. 注意, 有效端口是16位, 即(1-65535)可选. 例子中我选用60000端口.

局域网电脑的IP地址最好使用固定IP, 可以在机器系统上指定, 或者在路由的DHCP服务上制定一个静态IP分配给电脑的MAC地址使用.

6. 映射IP/MAC地址

到现在为止, 如果你内网的电脑是打开的话, 你可以从外网上通过动态域名地址加刚才开放了映射的端口访问内网的电脑了. 如上面设置, 你可以在内网上建立一个HTTP服务器, 并监听60000端口, 在外网上使用动态域名: http://xxxx.oicp.net:60000/ 来访问到你内网的机器HTTP服务(说明: 一般电信已经把ADSL的80端口封禁了, 不运行被直接访问, 所以如果直接绑定80端口的话, 外网一般也不能被访问到).

映射访问是正常的, 但是你发现, 还是不能通过动态域名地址来远程唤醒. (Wake On Lan软件中Host Name/IP Address输入动态域名, Port中输入路由映射过的60000端口). 这其实是因为, 在关机状态下, 路由不知道应该把数据包转发的IP地址数据包发送到哪个MAC地址上, 刚才LAN唤醒测试我们是发送到广播地址, 但是通过路由转发的数据包却不能这样广播. 所以需要让路由知道, 发送到内网某个IP的数据包, 应该转换为哪个MAC地址来发送.

解决这个问题, 在我的FAST FW300R路由上, 可以通过静态ARP绑定设置来解决. 添加一个新的绑定, 如下所示:

保存, 确保路由设置已经生效, 可以重启一次路由器, 等待动态域名刷新生效. (不同的动态域名服务商的缓存时间有所不同, 一般几分钟内可以同步).

7. 测试Wake On WAN

使用手机打开Wake on Lan软件, 唤醒的电脑MAC地址填写局域网电脑的网卡MAC地址, 地址填写动态域名的地址, 端口填写路由设置好的转发端口号码. 发送数据包. 稍等几秒后, 你的内网电脑就应该会开始启动. 现在, 只要你的路由和电脑电源是打开的, 你都可以随时唤醒内网电脑, 再通过动态域名和转发的端口, 就可以随时随地访问你的内网电脑了. 我已经把我的IBM X21笔记本改造成一个服务器, 可以让我随时的提交git版本控制代码了!

0 0