所需的资源
- VPS(一台拥有公网IP的电脑,用来开启FRP服务)
- WIFI智能插座(支持远程控制的插座,用来远程开机)
主要思路
总体思路是要解决两个问题,一个是如何自动开机,还有一个是如何进行远程控制。
远程开机
第一个问题就是如何自动开机。实现远程开机的方式有很多种,我这里选择了比较简单的方式,也方便大家上手。那就是使用WIFI智能插座+BIOS设置通电开机的配置。这个组合就能在家通过控制WIFI智能插座的通电状态来控制电脑的开机了。
远程控制
远程控制的方式也有很多,市面上也有很多远程控制软件,但是很多都是收费的,免费的也有,比较有名的比如像TeamViewer,现在连了一段时间就会怀疑你是商业用途,就会断线,不太好用。我这里使用的是frp这种方案,frp是一个专注于内网穿透的高性能的反向代理应用。
远程开机
刚才说了,我们实现远程主要是通过WIFI智能插座+BIOS通电开机设置的方式实现的。现在就细说一下。
我用的是这款小米智能插座,使用小米的智能插座,主要是我平时也有使用小米的其他智能家居,米家用的也比较习惯了,市面上也有其他品牌可以选择。
接下来就是如何BIOS上设置通电开机的配置了,由于BIOS各家厂商的配置都不尽相同,以我使用的微星主板为例,是在高级-电源管理设置-AC电源掉电再来电的状态,这个选项,我们只要选择【开机】就行了。这样只要插座一通电,就能自动开机了。
如果还有同学不知道如何进入BIOS的话,我这里再说一下,一般是在按下开机电源按键之后,就一直按Del键(有些厂商也可能是其他的键),就会进入到BIOS界面了。
到这里设置完成之后,你就可以先试一下,是不是能够通过手机米家控制电脑开机了。
远程控制
我们这里使用的是frp的内网穿透方案,这里就需要用到一台拥有公网IP的VPS,主要是用来跑FRP的服务端。
官方文档地址:https://gofrp.org/docs/
github地址:https://github.com/fatedier/frp
安装frp服务端
安装也非常简单,到github的releases里面下载最新版本的压缩文件,然后解压出来就行了。
这里提供一下简单的脚本,是之前安装的时候记录下来的。帮助一些没接触过的同学。
mkdir-p/etc/frpcd/etc/frp#下载最新的版本wget"https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_amd64.tar.gz"#解压tarxzvffrp_0.37.1_linux_amd64.tar.gz#拷贝出来mvfrp_0.37.1_linux_amd64/*/etc/frp
现在最新的版本是v0.38.0,可以把上面的版本号修改成最新的版本,如果是新同学的话,建议不要修改,方便后面可以跟着操作。
接下来就是修改一下配置。
先打开配置文件,服务端的配置文件是frps.ini。
vifrps.ini
写入下面的配置。
[common]#绑定服务端口bind_port=7000#控制台的配置:用户名,密码,端口dashboard_user=testdashboard_pwd=test_pwddashboard_port=7500
到这里,配置也就弄完了,这个是最简单的配置了。开了仪表盘的端口,主要是为了我们测试服务有没有正常跑起来。
然后我们开始运行frp服务。
./frps-cfrps.ini
如果终端没有报错的话,这个时候,你就可以打开浏览器输入,你的VPS的IP地址+端口,看看能不能访问到。
如果顺利的话,就能看到类似下面的界面:
我估计很多同学到这一步应该还是不行,因为我们还没有开放端口,一般VPS都会限制访问端口,我们需要到VPS厂商那边去开通端口。
我使用的是腾讯云,就以腾讯云为例,需要进入到安全组配置里面,然后添加一条新的规则。
然后我们再回到浏览器刷新一下,应该就能看到frp服务的控制台界面了。
这个时候记得还要开通7000端口,因为等一下我们安装完客户端之后还要试一下能不能正常连接上frp的服务。
安装frp客户端
安装完frp服务端,接下来就要安装frp的客户端了。
一样的,我们要下载客户端下来。同样也是要到github上下载。
客户端下载地址:https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_windows_amd64.zip
由于某种不可抗力的影响,有些同学可能下载的过程不太顺利,我这里上传到了网盘一份。阿里云盘不让上传zip,只能传毒盘了。
链接:https://pan.baidu.com/s/1LAHJHqsJGXacBnK3EVm3ag提取码:yuo8
客户端的安装就更简单了,找个目录解压,然后修改配置文件frpc.ini。Windows端解压的操作就不用多介绍了吧。
[common]server_addr=这里填你的VPSip地址server_port=7000#这个客户端的名称,可以随便写[PC]type=tcplocal_ip=127.0.0.1#由于要使用windows的远程桌面,所以使用远程桌面的默认端口3389local_port=3389remote_port=3389
这个配置里面remote_port这个配置可以修改成你想要的端口,我这里用3389,主要是为了后面远程桌面的时候不用再填端口。
哦!对了,remote_port这个配置的端口也要在VPS的安全组上面配置一下,否则也会访问不上。
这样我们客户端的配置也搞完了,我们运行一下,看能不能连上Frp的服务。先进入到解压之后的目录。
./frpc-c./frpc.ini
我这里用的命令终端是WindowsPowerShell。但是我看到我之前的笔记上写的是下面这个,不知道是不是不同终端的差异。如果上面的不行的话,可以试一下下面这个。
frpc.exe-cfrpc.ini
如果运行之后,看到startproxysuccess的字样,说明启动成功了。
如果失败了的话,检查一下连接VPS的终端是不是掉线了。我用的腾讯云VPS,过一会没有操作就会自动断开。如果掉线了的话,要重新登录VPS的终端,开启frp服务。然后再测试一下。
测试远程桌面
Windows默认是没有开启远程桌面,需要到设置里面开一下。
然后我们就可以测试一下,能不能正常进行远程桌面。用另一个电脑,或者用手机也可以,手机要安装能够远程桌面的APP。然后输入VPS的IP试一下,正常的情况下,会让你输入用户名和密码,这个是你能够支持远程桌面的Windows账户。输完账户密码的话,正常的话是已经能够进行远程桌面了。
开机启动
如果能走到这里,那就恭喜你,已经成功跑通这一个流程了。剩下的就是一些边边角角的东西了。
我们刚才测试的时候,需要连着VPS的终端才能运行Frp的服务,但是我们不能一直开着这个终端吧,这也太不方便了。我们想要的效果是VPS启动的时候就能自动启动frp服务,这样我们随时都能连上了。
同样的,放在出租屋里的电脑,也是希望能够开机就自动启动,不需要我们手动启动frp客户端。如果我们都能坐在电脑前启动frp客户端了,那还要远程干什么。
开机启动frp服务端
我这里开机服务使用的是Systemd。
Systemd的任务启动是放在/lib/systemd/system/这个目录下面。我们先在这个目录下面新建一个文件frp.service,cd到该目录下,然后使用命令vifrp.service创建一个任务。输入配置。
#Unit为一个单元,或者说是一个任务[Unit]#描述Description=frpservice#启动的时机,这里是网络连接上之后After=network-noline.target#描述如何启动[Service]#启动执行的命令ExecStart=/etc/frp/frp_0.37.1_linux_amd64/frps-c/etc/frp/frp_0.37.1_linux_amd64/frps.ini#类型,一般用simple就行了Type=simple#失败时重启Restart=on-failure#重启时间间隔RestartSec=60s[Install]#配置多用户WantedBy=multi-user.target
这样,一个简单的Systemd任务就创建好了。我们可以现在就启动看一下效果。
systemctlstartfrp.service
然后你关闭连接VPS的终端,启动一下Frp的客户端,这个时候应该也能正常连接上frp服务了。
如果测试正常的话,接下来就是设置开机启动这个任务。
systemctlenablefrp.service
后面再测试一下重启VPS,是不是也能正常。到这里就已经能够在VPS开机连上网络之后开启frp的服务了。
开机启动frp客户端
我这里使用的是任务计划程序。这个是Windows自带的程序,我们可以通过这个来做开机自启动。
首先,我们需要一个启动frp客户端的脚本,在Frp的目录下,新建一个文件start.bat,脚本内容如下。
vifrps.ini0
这个脚本很简单,里面用到的启动脚本,就是我们上面手动启动frp客户端一样。然后加个循环,如果启动失败,就重试。
如果不想要重试的话,就用下面的脚本。
vifrps.ini1
接下来双击启动,测试一下,看是否能够正常启动。
如果正常,那我们就进入下一步,如何开机就运行这个脚本?
我这里使用的是任务计划程序。在开始菜单里面搜索,任务计划程序。后面的操作我都截图了。
先点击右侧的创建任务
勾选[不管用户是否登录都要运行,使用最高权限运行,隐藏]这几个选项
再新建一个触发器,选择启动时
再选择我们刚才创建的脚本
这样就可以了,点确定,这个时候应该会需要你输入管理员的密码,以后电脑开机的时候就会自动启动frp的客户端了。
然后我们再测试一下,重启一下电脑,在任务管理器里面应该就能看到frpc.exe正在运行了。
串起所有流程
到这里,所有的步骤都完成了。是时候串起所有的流程跑一遍看看最终的效果了。
- 先把电脑关机,等电脑完全关机。
- 打开米家,把智能插座关闭,等个十秒钟,再打开。这个时候你就能看到电脑自动开机了。
- 等一会,等frp客户端的启动。
- 使用远程桌面的客户端进行连接,输入VPS的IP地址。这个时候会需要登录你的Windows账户,这个时候就能成功远程桌面你的电脑了。