朋友有个需求想随时唤醒家中电脑,现在大部分电脑主板都支持wol唤醒功能,此功能在bios中打开,根据自己主板型号各异
在打开唤醒功能时发现我的主板是支持的,但是在彻底断电后再接电就无法唤醒了,这个网上查据说国产主板很多都这样,我升级了bios版本就正常了。
准备工作
实现这个功能需要有一台公网ip的服务器,可以自己买vps,这里测试准备了一台linux服务器,发行版为centos7,ip为10.234.100.2
frp下载地址:https://github.com/fatedier/frp/releases
openwrt需要下载mips版本,centos7下载linux版本,解压后,frps为server端,frpc为客户端
详细配置参考官方文档:https://github.com/fatedier/frp/blob/master/README_zh.md
简单安装
server端
将frps frps_full.ini frps.ini 上传到服务器,这里将目录创建在/etc/frp,修改配置文件,指定server对外服务器端口:
# vim frps.ini [common] bind_port = 7000
server端启动frp服务为命令 ./frps -c ./frps.ini
将其写入开机启动
# vim /etc/rc.local 加入此行 nohup /etc/frp/frps -c /etc/frp/frps.ini >> /etc/frp/frps.log 2>&1 &
client端
将mips版本的frpc frpc.ini上传至路由器,目录创建在/etc/frp
修改配置文件,指定server端ip和端口,并配置所需服务
# vi frpc.ini [common] server_addr = 10.234.100.2 server_port = 7000 #家中路由器的ssh映射 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 #本地端口 remote_port = 10022 #远程端口 #远程唤醒映射,本地唤醒用的端口是7或者9,这里使用9 [wol] type = udp local_ip = 192.168.1.255 #此处填写广播地址 local_port = 9 remote_port = 10009 #家中电脑远程桌面映射 [desktop] type = tcp local_ip = 192.168.1.77 local_port = 3389 remote_port = 10389
客户端启动命令同服务端 ./frpc -c ./frpc.ini
openwrt的后台运行需要借助screen这个软件,使用命令:opkg update && opkg install screen 进行安装
加入路由器开机启动
# vi /etc/rc.local sleep 30 && screen -dmS frpc /etc/frp/frpc -c /etc/frp/frpc.ini
因为路由器刚开机需要时间拨号,为了防止客户端连接失败,这里延时了30秒进行连接
至此可以通过远程ssh到openwrt,ssh 10.234.100.2 10022 ,在路由器上安装wol,通过命令进行唤醒
wol下载地址:http://archive.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/oldpackages/wol_0.7.1-3_ar71xx.ipk
命令为:
/usr/bin/wol -i 192.168.1.255 8E:B9:A5:FE:1B:EB #8E:B9:A5:FE:1B:EB为家中电脑网卡mac,-i后跟上广播地址
转载需保留链接来源:软件玩家 » openwrt利用frp内网穿透远程桌面唤醒家中电脑