【内网穿透开机】外网环境下基于Frp、VNC技术远程开机

外网环境下基于Frp、VNC技术远程开机

之前文章向大家介绍了 外网环境下基于Frp、VNC技术远程访问计算机,实现内网穿透。在完成上一期内容后,我们可以继续基于Frp、VNC技术,更进一步,实现远程开机!

之前博客上有很多物理远程开机的方法,今天我们讲讲采用 WOL远程唤醒 方式实现开机。

拥有公网IP用户
公网环境下通过APP
公网环境下通过浏览器
非公网IP用户
路由器
局域网内其他主机
VNC远程登陆
开启WOL
配置
访问路由器后台
唤醒
内网穿透
开启FRPC服务
配置VNC和FRP

采用 WOL远程唤醒 方式实现开机 根据不同网络环境,主要有三种不同方法,针对拥有公网IP的用户(动态公网IP相比于静态公网IP,更为常见,但也只多了DDNS等步骤)而言,最为简单,网上大多数文章也都是在介绍这种网络环境下的唤醒;针对非公网IP的用户,则需要进行内网穿透。有一部分用户路由器支持刷固件,同时也愿意刷固件,可以使用路由器自带的FRPC,直接进行穿透 点此查看实现方式 ;最后一部分用户,没有公网IP,路由器也刷不了固件,本文主要针对该类用户,提出了一种 WOL远程唤醒 方法,即采用类似VPN技术,通过穿透其他内网主机的方式,外网登陆路由器后台,完成计算机唤醒。当然,对上述三种方法,在下文都会进行介绍,对于较为简单或者之前已经介绍过的操作步骤,附有传送门,点击即可查看。

一、WOL实现条件(硬件要求)

网络唤醒(Wake-on-LAN,WOL),中文译为“网络唤醒”、“远端唤醒”技术。WOL是一种技术,同时也是该技术的规范标准,它的功能在于让已经进入休眠状态或关机状态的设备(如电脑、NAS等),透过局域网(多半为以太网)的另一端对其发令,使其从休眠状态唤醒、恢复成运作状态,或从关机状态转成开机状态。此外,与WOL相关的技术也包括远端下令关机、远端下令重新开机等相关的遥控机制。

实现远程唤醒技术功能的电脑,对硬件要求主要表现在电源,主板和网卡上。

1. 电源

设备电源必须是符合ATX 2.01标准以上的ATX电源,+5V Standby电流至少应在600mA以上。主要是保证在电源主要供电停止工作后,通过Standby线路供给主板和网卡工作电源。P3处理器以后的电源都支持。

2. 主板

在PCI2.1标准和2.1标准以前,支持远程唤醒的主板上通常都拥有一个专门的3芯插座,保证在停机状态下给网卡供电(工作时由PCI插槽供电)。由于现在的主板绝大部分支持PCI 2.2标准,在主机停机状态下仍然可以直接通过PCI插槽向网卡提供+3.3V Standby电源,这样就不需要外加的3芯电源线给网卡供电。符合PCI 2.2标准的主板在供电上都支持远程唤醒,但是有的不能响应网卡和PCI设备的开机信号。

支持远程唤醒的主板在BIOS设置中还要将网卡和PCI设备启动功能打开。如:“Wake on LAN”,“Power on LAN”,“Wake on PCI Card”,"Power on PCI Card"设置项,一般只要不是很老的机子,主板已经默认打开了远程唤醒功能。

3. 网卡

网卡必须要支持WOL标准,这个标准最早由AMD公司提出。要想知道你的网卡是否支持WOL,在你确认电源、主板已经支持的情况下,你可以先将设备关机,然后查看连接你网卡的设备上的网线连接状态指示灯。如果连接指示灯亮表示你的网卡支持WOL功能(即使主板BIOS中功能没有启用灯也亮),如果连接指示灯灭表示你的网卡不支持WOL功能。

实际上上述要求只是理论上的要求,只要不是古老的计算机,默认上述要求都已经满足,无需手动开启。

二、开启WOL

本文主要以华硕路由器开启WOL为例,进行如下设置(计算机与路由器之间插上网线,以固定MAC码):

在这里插入图片描述
之后关闭计算机,用处于局域网内的其他设备登陆路由器后台,点击唤醒,可以看到计算机被唤醒。

三、外网访问路由器后台

现在,理论上只需要访问路由器后台,就能够实现远程开机。

登陆路由器后台的方法对于拥有公网IP(静态/动态)的用户来说,只需要端口转发和DDNS域名解析,较为容易,在此不再多述。 具体操作方法点击此处查看

此外,针对拥有公网IP(静态/动态)并且使用华硕路由器的用户,可以直接下载 AiCloud ,进行开机控制,无需使用浏览器登陆进行唤醒操作。

在这里插入图片描述
在这里插入图片描述

本文主要介绍在非公网IP环境下,如何访问路由器后台。这里以FRP内网技术为例:


方法1:frp直接穿透路由器(推荐)

这个方案最为简便,推荐使用点击查看方法一实现方式

当然,考虑到大多数用户不想或者不能刷固件,我们还可以使用后2种方式实现远程开机。


方法2:使用frp内网穿透长期开启的局域网内机器 ,使用udp命令行广播技术唤醒计算机

长期开启的内网机器是Linux主机,可以基于Linux主机的udp广播技术,实现远程开机。这个方法较为简便。 实现方式点此查看


方法3:使用frp内网穿透长期开启的局域网内机器 ,并使用VNC技术远程登陆访问路由器后台

该方法较为愚笨,但不失为一个直观的唤醒方式。

下面还是以树莓派为例,使用VNC技术远程登陆访问路由器后台:

(1)开启VNC服务端
sudo raspi-config

在这里插入图片描述
在这里插入图片描述

# 开启VNC
vncserver
# 或者
tightvncserver

如下图显示,表明成功开启:

在这里插入图片描述
我们可以进入log文件,查看VNC服务的端口号:
在这里插入图片描述
在这里插入图片描述
此时可以局域网环境下尝试使用VNC客户端登陆树莓派,验证VNC是否正常运行。

(2)frpc配置

关于FRP内网穿透方法,可参见 点击查看本文
本文在进行如下操作前,树莓派的frp环境,以及frps配置,可参见 点击查看本文
不要忘记在服务器端开放5901端口

sudo apt-get update

wget https://github.com/fatedier/frp/releases/download/v0.17.0/frp_0.17.0_linux_arm.tar.gz

tar -zxvf frp_0.17.0_linux_arm.tar.gz  #解压缩:tar xvf 文件名

cd frp_0.17.0_linux_arm                #进入解压目录

#修改frps.ini文件
sudo vim ./frpc.ini

添加以下内容(需要删除注释)
[common]
server_addr = your_server_ip               #VPS服务器IP
server_port = 7000                         #端口,与服务端bind_port一致  

[range:VNC-Pi]
type = tcp
local_ip = 127.0.0.1
local_port = 5901                          #经过log文件查询,5901是VNC的默认端口
remote_port = 5901

如果之前已经开启过 frpc 服务,需要暂停:

sudo systemctl stop frpc     # 之前是采用systemctl方式开启的frpc服务

ps -ef |grep frpc
sudo kill -9 进程号

cd frp_0.17.0_linux_arm
./frpc -c ./frpc.ini         # 如果确保没有错误,可以不执行这两行,直接执行下面的语句。

sudo systemctl start frpc

这里我使用 ./frpc -c ./frpc.ini 命令,查看到计算机和树莓派穿透时候VNC名称冲突了,因此我予以了名称更换。
在这里插入图片描述

四、远程访问(以下图片都来自于移动端截屏)

在计算机开启VNC-Server环境下,移动端打开VNC-Viewer
点击右上角 + ——>输入VPS服务器IP:5901——> 自定义连接名称 ——> Save

在这里插入图片描述

首次登陆要求输入密码(即树莓派的用户密码)
为方便下次远程,可以选择记住密码,最后点击Continue
登陆路由器后台,并将路由器后台页面保存至桌面

在这里插入图片描述

至此,外网环境下基于FRP、VNC技术,成功实现了远程开机。

五、外网实践(全程移动端为例)

首先使用 VNC-Viewer app 登陆树莓派,通过进入家庭局域网,登陆 路由器后台

在这里插入图片描述
在这里插入图片描述

进入 路由器后台 后,唤醒需要远程登陆的计算机

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

远程开机后,通过 TeamViewer 或者 VNC 远程登陆计算机 实现方式点击此处查看

在这里插入图片描述


有粉丝问树莓派VPC登录提示too many security failures如何解决,下面给出我的解决方法:

  • 开启ROOT用户
sudo passwd root
sudo passwd --unlock root #启用root

如果报错:passwd: password expiry information changed.则是ssh默认关闭了root登陆。

vi /etc/ssh/sshd_config
PermitRootLogin yes #值更改为yes

在这里插入图片描述

#重启ssh服务
sudo systemctl restart ssh

#为root用户应用于当前用户相同的bash配置
sudo cp ~/.bashrc /root/.bashrc
  • 重启vncserver
su 用户名
登录密码

vncserver -list
vncserver -kill :端口号

#重启:
vncserver :端口号

在这里插入图片描述
查看log文件中的端口,重新连接。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邓大帅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值