openwrt利用frp内网穿透远程桌面唤醒家中电脑

朋友有个需求想随时唤醒家中电脑,现在大部分电脑主板都支持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后跟上广播地址

转载需保留链接来源:VCBeta.CN » openwrt利用frp内网穿透远程桌面唤醒家中电脑

赞 (2)