admin 管理员组文章数量: 1184232
0. 实现效果图与概览
效果图:
概览:
[手机/外部设备]
↓ 访问
[公网IP:5000/wake](ps如果不做第四部分就没有这一层)
↓ 映射
[路由器NAT转发]
↓
[树莓派 Flask 服务器]
↓ 发 magic packet
[宿舍电脑] ←←← 被唤醒
1. 被唤醒的机子上进行设置
这里分两步:
(1)在windows可视化界面进行设置
这一步的图片教程详见这段后面贴的链接
(2)命令行输入命令
被唤醒的机子上输入命令
# 以管理员身份运行 CMD
netsh -c "interface ipv4" add neighbors <idx> <IP> <MAC>
# 示例:
netsh -c "interface ipv4" add neighbors 5 192.168.10.102 E4-60-xx-xx-xx-xx
(其中:
idx获取方式:
以管理员身份运行cmd→键入 netsh i i show in ,记住正在使用的网卡idx
IP是正在使用网卡的IP地址,
mac可通过ipconfig /all查询)
原文链接:https://blog.csdn/m0_37728676/article/details/120724647)
2. 在树莓派上进行的操作
手动的方式(原理):
- 使用
sudo apt-get install wakeonlan命令安装wakeonlan; - 通过
wakeonlan xx:xx:xx:xx:xx:xx命令发送唤醒包对被控电脑进行真实局域网WOL测试(xx代指被控电脑MAC地址)。
程序的方式:
(1) 运行python脚本(作用是监听一个端口, 响应唤醒请求)
from flask import Flask
import os
import logging
from datetime import datetime
app = Flask(__name__)
# 设置日志输出到文件
logging.basicConfig(
filename='/home/pi/logs/wol.log', # 改成你想存放的位置
level=logging.INFO,
format='%(asctime)s %(levelname)s: %(message)s'
)
@app.route('/wake')
def wake():
logging.info("get request")
result = os.system("wakeonlan E4:60:17:xx:xx:xx")//这里写你要被唤醒的机子的物理地址
if result == 0:
logging.info("Magic Packet send success")
return "success"
else:
logging.error("failed")
return "failed"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
(2) keepAlive脚本(作用是 万一上面的服务因为一些小概率事件关闭之后 我们不用手动去启动)
放在你想放的路径下
如/home/pi/pathToYourScripts
#!/bin/bash
if pgrep -f wol_server > /dev/null; then
echo "$(date): wol running"
else
echo "$(date): wol restarting..."
cd /home/pi/pathToYourScripts/wol-py
nohup python3 wol_server.py > /home/pi/code/wol-py/log.txt 2>&1 &
fi
(3) 添加定时任务自动运行keepAlive脚本
输入crontab -e
按如图格式加入刚才写的那个脚本(其中 ***** * * * * 意思是每分钟执行一次 也可以按照需要修改)
#!/bin/bash
* * * * * /bin/bash /home/pi/scripts/keepAlive/wolServer.sh >> /home/pi/logs/cron.log 2>&1
然后就可以通过访问[树莓派ip:5000/wake] (如 192.168.12.103:5000/wake)来进行唤醒了
以校园网为例子, 被唤醒的机器是宿舍电脑, 树莓派和宿舍电脑连接同一个Wi-Fi, 目前实现的是能够在连接这个宿舍Wi-Fi之后访问url进行唤醒
如果想要在宿舍之外的地方连校园网 访问url进行唤醒, 需要进行路由器的配置(看下一段 )
3. 路由器ip映射和端口映射
-
ip映射
校园网分配给路由器的ip 10.150.xxx.xxx 映射到 路由器分配到本机的ip192.168.10.xxx
-
端口映射
路由器外部端口也绑定到你服务的端口
-
绑定ip和mac地址
这样路由器分配给你的ip就不会变了
( 在路由器管理页面找, tplink入口如下图)
原文链接:https://blog.csdn/sinat_41680617/article/details/147372648
https://blog.csdn/sinat_41680617/article/details/147372648?spm=1011.2124.3001.6209
到目前为止, 你就可以在[能连上校园网的地方]通过访问[你路由器的ip:5000/wake]来进行唤醒了
4. 做校园网穿透
有公网ip的可以用公网ip做转发, 实现在任何网络下都可以访问 域名:5000/wake来进行唤醒
这一步的教程链接:暂空
5. iPhone配置快捷指令
完成啦^ ^
版权声明:本文标题:iPhone快捷指令一键WOL远程唤醒 [新手向教程] 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1763722338a3264376.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论