Blog

Make it work, make it right, make it fast

Oct 30, 2022 - 1 minute read - 编程

通过Frp实现远程电脑自动开机

最近上班有些感想,单位的电脑不是性能不足,就是网络访问受限,因此,通过微软远程桌面访问家里配置好的电脑就成为了一个需求。

但是存在以下几个问题:

  • 电脑是否支持magic package远程唤醒。
  • 微软远程桌面不在同一个网段无法连接。
  • 脑24小时开机等待连接功耗较大。
  • 无法做到不用时关机,随用随开。

第一个问题,只要不是特别老的电脑网卡都支持,设置一下网卡即可,这里不再赘述。
第二个问题,不在同一个网段可以通过Frp进行内网传统,由第三方功耗较低的小型服务器发送magic package 唤醒,我这里使用的是斐讯N1设备,刷成了armbian系统,然后通过wakeonlan程序唤醒电脑。

这里只解释如何通过armbian唤醒以及配置内网穿透。

安装唤醒工具

sudo apt install wakeonlan
wakeonlan 电脑MAC地址

这里只需要安装wakeonlan,然后记录下电脑Mac地址即可,电脑关机运行以上命令,如果可以正常开机即可进行下一步。

配置内网穿透

armbian和windows都是在同一内网,如果通过外网唤醒呢,则需要配置frp内网穿透服务(下载地址:https://github.com/fatedier/frp/releases),根据设备类型下载对应的frp程序版本。

服务端的配置较为简单,只需要编辑frps.ini文件,然后配置为service随开机启动即可

frps.ini配置如下

[common]
bind_port = 7000
#web面板端口
dashboard_port = 7100
#udp端口 用于内网穿透
bind_udp_port = 7000
token = xxx
#web面板账号密码
dashboard_user = xxx
dashboard_pwd = xxx
# allow_ports 可以配置允许使用的某个指定端口或者是一个范围内的所有端口,以 , 分隔,指定的范围以 - 分隔。
allow_ports = 7000-7100

log_file = /var/log/frps.log
log_level = trace
log_max_days = 31

测试启动:./frps -c ./frps.ini

armbian配置如下

[common]
server_addr = xxxxx
server_port = 7000

token = xxxx
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 7002

armbian只需要按照上述简单配置下ssh穿透即可,windows同样配置下RDP服务不在赘述。

配置成功后可以在Frps的服务面板看到在线设备

frps面板

接下来进行测试,在一台联网终端运行命令:ssh -oPort=7002 xx@xxxxxx "wakeonlan Mac地址",电脑启动正常即可。

上述正常后,可以进一步的使用手机打开电脑,以iphone为例,配置快捷指令

iphone快捷指令

呼出sir,打开电脑,即可开机。