由于现在运营商不为家用宽带提供独立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端口啦(用别的端口也行,只不过要保证那个端口一定是随系统开关的)