热门课程

免费试听

上课方式

开班时间

当前位置: 首页 -   文章 -   新闻动态 -   正文

FRP内网穿透与远程桌面——远程控制与远程工作

2024-08-05 14:18:49
0

一、需求

电脑A:在家里,运行 Windows10 专业版系统。电脑B:在办公室,运行 深度Linux系统。电脑C:windows7系统,偶尔使用。

假如,电脑A 运行着一套软件开发环境,有时需要在电脑B或电脑C中进行调试,或者需要使用电脑A中的某些 Windows 软件来完成工作。也就是电脑 A 提供远程桌面服务,将电脑B和电脑C当做终端,使用电脑 B 或电脑 C 来操作 电脑 A。反之,有时也同样需要使用电脑 A 来操作电脑 B中的某些办公系统。

二、解决方法探讨

1、这样的需求不一定非要使用远程桌面吧?

用笔记本,安装双系统,走哪儿带哪儿,一样解决问题啊。额......,好吧,这个解决办法不是本文要讨论的,我说的就是远程连接电脑和远程工作的问题。

2、使用向日葵或 TeamViewer 类软件

这类软件使用方法比较简单,并且都有免费版本,本人使用的均是免费版本,主观感觉向日葵速度延迟较大,如果要低延迟那就需要付费,TeamViewer 的速度已经基本能满足远程办公的需要。

向日葵需要在电脑 A 中安装服务端,注册账号并登录,在电脑 B 或电脑 C 中安装控制端,用同样的账号登录,就能看到电脑 A 已经是在线状态,即可发起远程控制。

Teamviewer 在电脑 A 和电脑 B 中同时安装,运行TeamViewer后会显示ID和密码,电脑 B 输入电脑 A 中的 ID 进行连接,输入密码即可实现远程控制。此密码会自动更新,但是可以自己指定一个固定密码。

3、 VNC类软件

VNC(Virtual Network Computing) 是一个开源、免费的,基于 RFB(Remote Frame Buffer)协议进行通信并完成桌面传输显示和操作,RFB (远程帧缓存) 是一个远程图形用户的简单协议,它可以应用于所有的窗口系统:Linux桌面、Windows和Mac系统。

Linux上的VNC服务端,比较常用的就是 tigervn c和 x11vnc,Linux 上的 VNC 客户端比较多,例如,Remmina 同时支持 RDP 和 VNC 协议。

在Windows上支持VNC协议的软件,常用的有RealVNC(收费)、UltraVNC(免费)和TightVNC(免费),它们同时既是服务端又是客户端。

4、远程桌面服务

在桌面虚拟化技术中,当前主流的桌面传输协议有 ICA、PCoIP、RDP、SPICE 四种,也就是通常所说的桌面云。Windows 10 系统中的远程桌面,使用的就是 RDP(Remote Desktop Protocol),即远程桌面协议。

区别:VNC是服务端把桌面窗口渲染完成后将图像直接传输给客户端,客户端只是对图像进行解码显示;而 RDP 和 SPICE 相当于将桌面窗口数据传输给客户端,再由客户端生成图形和图像显示,更加适合虚拟桌面使用。SPICE 是一个开源协议,RDP 的客户端是开源的但是服务端不开源。

至于那些抓屏幕的远程控制软件,比如十几年前很有名气的 PCAnywhere,就不提了吧,毕竟现在已经是云计算、虚拟化技术大行其道的时候了。

5、华为云电脑

华为云电脑估计使用的的是华为自己的HDP协议,HDP源自ICA,不过华为云电脑目前好像只支持华为手机吧,没有PC系统的客户端,并且云电脑可选配置少,不能自定义,但是其中有一款是游戏款,可见已经整合了显卡虚拟化技术,应该类似于微软的RemoteFX。本人简单试用了一下,效果不错,这个或许是以后的发展方向,桌面虚拟化走向大众用户,以后一般情况下就不用再买电脑了,一部手机,或者一台瘦客户终端(机顶盒),一台显示设备(显示器、电视、投影),再配合宽带或5G网络,就可以连接云电脑来完成自己的工作。

6、花生壳、神卓互联等内网穿透类服务

这些内网穿透工具使用比较简单,都是根据使用的带宽收费的。假如自己已经有一台公网访问的服务器,本着理工男"万事不求人"、“自己动手丰衣足食”的想法,用这台公网服务器做为代理,同样可以实现内网穿透,和花生壳这类工具原理基本是相似的。

FRP内网穿透与远程桌面

三、方案选择

1、电脑B远程连接电脑A

电脑A是Windows10企业版,最方便的当然是开启远程桌面服务(RDP)。但是前提条件是:如果使用RDP,就需要服务端电脑具有公网IP地址。

家里的电脑A,网络使用电信100M,上行4M,虽然有公网IP地址,但是需要用超级管理员(一般是telecomadmin)登录天翼光猫,做端口映射,才能用使用公网IP地址连接到电脑A。另外,家用的电信宽带公网IP地址是动态变化的,需要使用路由器自带的花生壳之类的服用来解决。也就是在没有解决这些问题之前,电脑A属于内网,而无法暴露在公网中。

现在的问题就是如何让内网电脑(电脑A)向外网用户(电脑B)提供远程桌面、WEB等网络服务?那就是使用一台具有公网IP地址的服务器做为反向代理,实现内网穿透。电脑A向反向代理服务器发送请求,接着反向代理向电脑B转交请求,电脑B向代理服务器返回所请求的内容,代理服务器将获得的内容返回给电脑A。正好,本人有一台阿里云的服务器,可以满足这个要求。

2、内网穿透工具选择:Frp

常见的内网穿透的反向代理程序是 ngrok ,国内有许多提供内网穿透服务的平台都是基于 ngrok 搭建的,但是 ngrok 配置略复杂。这里选择 Frp ,因为配置简单,功能强大。

四、FRP内网穿透及远程桌面配置

(一)代理服务器端配置

1、ssh 连接阿里云主机(centos 7)

2、下载:wget https://github.com/fatedier/frp/releases/download/v0.27.0/frp_0.27.0_linux_amd64.tar.gz

下载完成之后解压:tar -zxvf frp_0.27.0_linux_amd64.tar.gz

解压完成后重命名目录:mv frp_0.27.0_linux_amd64 frp

进入frp目录文件夹:cd frp

FRP 默认给出两个服务端配置文件,一个是简版的 frps.ini,另一个是完整版本 frps_full.ini。

删除客户端相关的文件(frpc,frpc.ini,frpc_full.ini)

3、编辑 frps.ini :vim frps.ini

bind_port 为客户端与服务端进行通信的端口

Dashboard 通过浏览器查看 frp 的状态以及代理统计信息展示。

[common]bind_port = 7000dashboard_port = 7500# dashboard 用户名密码,默认都为 admindashboard_user = admindashboard_pwd = admin

4.1、设置开机启动和后台运行

vi /etc/systemd/system/frps.service

[Unit]Description=frps daemonAfter=syslog.target  network.targetWants=network.target[Service]Type=simpleExecStart=/home/frp/frps -c /home/frp/frps.iniRestart= alwaysRestartSec=1min[Install]WantedBy=multi-user.target

注意ExecStart中要配置成自己的路径

然后启动frps:sudo systemctl start frps 打开开机自启动:sudo systemctl enable frps

如果要重启应用:sudo systemctl restart frps 如果要停止应用:sudo systemctl stop frps 如果要查看应用的日志:sudo systemctl status frps

4.2、./frps -c ./frps.ini 前端开启,关闭就会失效,使用 nohup 后端运行

nohup ./frps -c ./frps.ini &

5、由于使用阿里云服务器,需要在阿里云控制面板配置安全组规则,添加 7000 7500 33891 33892 8080 端口。其中 7000 和 7500 是 frps.ini 文件开放的端口,33891 是电脑B frpc.ini 指定的映射到本地的远程端口。如果使用的别的服务器,就在防火墙打开这些端口。

大家都在看

知了堂教你如何解决网络所面临的安全问题?

2024-08-05 浏览次数:0

java mvc三层架构详解,知道三层架构是怎么...

2024-08-05 浏览次数:0

成都渗透测试培训机构哪家好?渗透测试培训机构怎么...

2024-08-05 浏览次数:0

【知了堂】就业培训班开展“模拟面试”训练

2024-08-05 浏览次数:0

欢迎回家-第一届知了校友会有啥看点

2024-08-05 浏览次数:0

0基础如何转行前端拿高薪?

2024-08-05 浏览次数:0
最新资讯