最近不是快过年了吗?不过由于疫情原因,估计大家回家都要带上电脑。笔记本说起来容易,台式机比较麻烦。
现在有空就准备用玻璃钢内网穿透远程开机控制电脑,希望能帮你在家的时候远程控制出租屋里的桌面。
所需资源VPS(一台有公共IP的电脑开启FRP服务)WIFI智能插头(支持远程控制远程开启的插座)主要思路是解决两个问题,一是如何自动开启,二是如何远程控制。
远程引导的第一个问题是如何自动引导。实现远程启动的方法有很多种。我这里选择了比较简单的方式,也方便大家上手。那就是使用WIFI 智能插座BIOS 设置通电开机.的配置这种组合可以通过控制WIFI 智能插座.的通电状态来控制家里电脑的开机
遥控的控制方式也很多,市面上的遥控软件也很多,但是很多都是收费和免费的。比较有名的,比如TeamViewer,过一段时间会怀疑你是商用的,所以会断网,不太好用。我使用的是frp,它是一个高性能的反向代理应用程序,专注于内部网渗透。
刚才说了,远程开机主要是通过WIFI智能插头BIOS的开机设置来实现的。现在就来说说吧。
我用这个小米智能插头,用小米的智能插头,主要是我平时有其他用小米的智能家居,用惯了,市面上也有其他品牌可以选择。
下一步是如何在BIOS上设置开机配置。由于BIOS厂商配置不尽相同,以我使用的MSI主板为例。这是在高级 - 电源管理设置 - 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 ' 3359github.com/fatedier/FRP/releases/download/v0.37.1/FRP _ 0 . 37 . 1 _ Linux _ amd64 . tar . gz ' #解压tar xzvffrp _ 0 . 37 . 1 _ Linux _ amd64.tar.gz #并复制出来。mv FRP _ 0 . 37 . 1 _ Linux _ amd64/*/etc/FRP。现在最新版本是v0.38.0,可以把上面的版本号改成最新版本。如果是新生,建议不要换。
下一步是修改配置。
首先打开配置文件。服务器的配置文件是frps.ini
Vips.ini编写以下配置。
#绑定服务端口bind_port=7000#控制台配置:用户名、密码、端口dashboard _ user=test dashboard _ pwd=test _ pwd dashboard _ port=7500。这里配置完毕,这是最简单的配置。仪表盘的端口是打开的,主要是让我们测试服务运行是否正常。
然后我们开始经营玻璃钢服务。/frps -c frps.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 端解压的操作就不用多介绍了吧。
哦!对了,remote_port 这个配置的端口也要在 VPS 的安全组上面配置一下,否则也会访问不上。
这样我们客户端的配置也搞完了,我们运行一下,看能不能连上 Frp 的服务。先进入到解压之后的目录。
./frpc -c ./frpc.ini我这里用的命令终端是Windows PowerShell 。但是我看到我之前的笔记上写的是下面这个,不知道是不是不同终端的差异。如果上面的不行的话,可以试一下下面这个。
frpc.exe -c frpc.ini如果运行之后,看到 start proxy success 的字样,说明启动成功了。
如果失败了的话,检查一下连接 VPS 的终端是不是掉线了。我用的 腾讯云 VPS ,过一会没有操作就会自动断开。如果掉线了的话,要重新登录 VPS 的终端,开启 frp 服务。然后再测试一下。
测试远程桌面Windows 默认是没有开启远程桌面,需要到设置里面开一下。
然后我们就可以测试一下,能不能正常进行远程桌面。用另一个电脑,或者用手机也可以,手机要安装能够远程桌面的APP。然后输入 VPS 的 IP 试一下,正常的情况下,会让你输入用户名和密码,这个是你能够支持远程桌面的 Windows 账户。输完账户密码的话,正常的话是已经能够进行远程桌面了。
开机启动如果能走到这里,那就恭喜你,已经成功跑通这一个流程了。剩下的就是一些边边角角的东西了。
我们刚才测试的时候,需要连着 VPS 的终端才能运行 Frp 的服务,但是我们不能一直开着这个终端吧,这也太不方便了。我们想要的效果是 VPS 启动的时候就能自动启动 frp 服务,这样我们随时都能连上了。
同样的,放在出租屋里的电脑,也是希望能够开机就自动启动,不需要我们手动启动 frp 客户端。如果我们都能坐在电脑前启动 frp 客户端了,那还要远程干什么。
开机启动 frp 服务端我这里开机服务使用的是 Systemd 。
Systemd 的任务启动是放在 /lib/systemd/system/ 这个目录下面。我们先在这个目录下面新建一个文件 frp.service,cd 到该目录下,然后使用命令 vi frp.service 创建一个任务 。输入配置。
# Unit 为一个单元,或者说是一个任务
systemctl start frp.service然后你关闭连接 VPS 的终端,启动一下 Frp 的客户端,这个时候应该也能正常连接上frp 服务了。
如果测试正常的话,接下来就是设置开机启动这个任务。
systemctl enable frp.service后面再测试一下 重启 VPS ,是不是也能正常。到这里就已经能够在 VPS 开机连上网络之后开启 frp 的服务了。
开机启动 frp 客户端我这里使用的是 任务计划程序。这个是 Windows 自带的程序,我们可以通过这个来做开机自启动。
首先,我们需要一个启动 frp 客户端的脚本,在 Frp 的目录下,新建一个文件 start.bat ,脚本内容如下。
@echo off:homefrpc -c frpc.inigoto home这个脚本很简单,里面用到的启动脚本,就是我们上面手动启动 frp 客户端一样。然后加个循环,如果启动失败,就重试。
如果不想要重试的话,就用下面的脚本。
@echo offfrpc -c frpc.iniexit接下来双击启动,测试一下,看是否能够正常启动。
如果正常,那我们就进入下一步,如何开机就运行这个脚本?
我这里使用的是 任务计划程序 。在开始菜单里面搜索,任务计划程序。后面的操作我都截图了。
先点击右侧的 创建任务
勾选 < 不管用户是否登录都要运行,使用最高权限运行,隐藏 > 这几个选项
再新建一个触发器,选择 启动时
再选择我们刚才创建的脚本
这样就可以了,点 确定 ,这个时候应该会需要你输入管理员的密码,以后电脑开机的时候就会自动启动 frp 的客户端了。
然后我们再测试一下,重启一下电脑,在任务管理器里面应该就能看到 frpc.exe 正在运行了。
串起所有流程到这里,所有的步骤都完成了。是时候串起所有的流程跑一遍看看最终的效果了。
先把电脑关机,等电脑完全关机。打开米家,把 智能插座 关闭,等个十秒钟,再打开。这个时候你就能看到电脑自动开机了。等一会,等 frp 客户端的启动。使用 远程桌面 的客户端进行连接,输入 VPS 的 IP 地址。这个时候会需要登录你的 Windows 账户,这个时候就能成功 远程桌面 你的电脑了。扩展虽然到这里,我要讲的内容就已经讲完了,但是还有一些可以扩展的东西。
比如,
如果你还有一个域名的话,就可以直接使用 域名 进行远程桌面了,就不用记一串很长的 VPS 的 IP 地址了。
如果你想要可以随时连接多台电脑,要怎么配置呢?
还有一个就是 其实 frp 是可以支持 p2p 的方式进行打洞穿透,如果成功,后续的流量将不用经过 frps ,而是直接通信,不再受到 frps 所在服务器的带宽限制。
这些后续扩展的功能,感兴趣的同学可以继续研究哈。