利用openwrt系统路由器和独立IP公网服务器远程唤醒电脑

由于现在运营商不为家用宽带提供独立IPv4或者光猫路由一体机不支持端口转发,导致没办法像以前用ADSL那样通过端口转发的方式直接远程唤醒电脑,所以,本文讲述如何使用公网IP服务器配合openwrt路由器来远程开机。

首先,在服务器上下载frp,开源地址:https://github.com/fatedier/frp

#我用的是amd64架构服务器,下载amd64版
wget https://github.com/fatedier/frp/releases/download/v0.59.0/frp_0.59.0_linux_amd64.tar.gz

解压并进入目录

tar -zxvf frp_0.59.0_linux_amd64.tar.gz
cd frp_0.59.0_linux_amd64

修改服务端配置文件

vim frps.toml

配置内容如下(自行修改)

#公网端口号
bindPort = 7000

#数据面板监听地址和端口号
webServer.addr = "0.0.0.0"
webServer.port = 7500
#数据面板用户名和密码
webServer.user = "root"
webServer.password = "123456"

#SSL证书和密钥
#webServer.tls.certFile = "server.crt"
#webServer.tls.keyFile = "server.key"

启动服务

./frps -c frps.toml

路由器端安装frpc,以下两个都要安装(我用的是GL·iNet SFT1200路由器,mips_siflower架构,其他架构自己找安装包,或者用源码自己编译)

到路由器luci里配置frpc或者直接在shell里配置

vim /etc/config/frpc
内容如下
config frpc 'main'
	option server 'frps'
	option client_file '/usr/bin/frpc'
	option login_fail_exit 'false'
	option run_user 'root'
	option protocol 'tcp'
	option tls_enable 'false'
	option enabled '1'

config server 'frps'
	option server_port '7000'
	option tcp_mux 'true'
	option alias '公网服务器'
	option server_addr '101.200.***.***'

config rule
	option name 'wol'
	option local_port '9'
	option type 'udp'
	option remote_port '29999'
	option local_ip '192.168.8.255'

注意,远程唤醒本地端口为9,远程端口自定义,但不能与公网服务器现有端口冲突,本地IP为直接广播地址,如路由器地址192.168.8.1,子网掩码长度24,即子网掩码为255.255.255.0,则直接广播地址为192.168.8.255,注意,千万不可以用受限广播地址(即255.255.255.255),否则网卡收不到魔幻数据包。

接下来下载wake on lan软件,网上一搜一大堆,IP地址就是公网服务器IP,端口号就是上面配置文件中的remote_port,我的是29999,MAC地址可以登录路由器管理页面查看一下客户端MAC,电脑BIOS再设置一下允许wake on lan,并在网卡设置中允许魔幻数据包唤醒,这部分很简单,根据自己的电脑型号查一查就知道了

到这里,远程唤醒就实现啦

接下来还要检测远程开机状态,在被远程唤醒电脑上,下载frp,配置如下

serverAddr = "101.200.***.***"
serverPort = 7000

[[proxies]]
name = "rpc_hp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 135
remotePort = 13599

我把本地135端口暴露在了公网上,公网端口为13599,wake on lan软件检测到公网ip的13599端口开放,说明电脑已成功开机。一般来说,暴露3389端口更好,但后面还要用3389做P2P的远程控制,就用135端口啦(用别的端口也行,只不过要保证那个端口一定是随系统开关的)


利用openwrt系统路由器和独立IP公网服务器远程唤醒电脑