内网穿透:如何借助Cloudflare连接没有公网的电脑的远程桌面(RDP)

在这里插入图片描述

内网穿透:如何借助Cloudflare连接没有公网的电脑的远程桌面(RDP)-含详细原理配置说明介绍

前言

远程桌面协议(RDP, Remote Desktop Protocol)可用于远程桌面连接,Windows系统(家庭版除外)也是支持这种协议的,无需安装额外客户端即可实现类似向日葵、toDesk等的远程桌面访问与控制。

但是前提是被控制的电脑有公网ip或者可以被局域网访问。没有公网ip又不在同一个局域网中的电脑如何使用这个协议进行远程连接呢?那就试试大名鼎鼎的cloudflare的内网穿透零信任tunnel技术吧!

准备

  • 需要有两台电脑,一台配置好远程桌面用于被远程访问,一台电脑用于连接这台电脑。
  • 需要注册Cloudflare账号并且绑定一个域名。

方法

  1. 进入Cloudflare零信任控制台(控制台主页 -> ZeroTrust -> Networks -> Tunnels

    进入Cloudflare零信任控制台,并点击Create Tunnel

  2. 新建Tunnel(Create Tunnel -> Select Cloudflared -> 起个名字 -> Save tunnel

    创建tunnel

  3. 两台电脑都下载并安装cloudflared客户端,并且复制命令行代码

    安装cloudflared客户端,并记录密钥(命令)

  4. 在被控制的电脑上运行刚才复制的命令(Win + S -> cmd -> 右键“命令提示符” -> 以管理员身份运行 -> 在弹出的小黑框中输入刚才复制的命令并回车

    命令提示符

    配置成功后应该能在下方Connectors列表中看到一个“连接者”。

  5. 配置域名(外网访问与内网映射规则)(点击网页上的Next -> 选择一个域名 -> 协议选择RDP -> URL输入localhost://3389因为rdp默认端口是3389 -> Save Tunnel

    Next

    配置域名

  6. 在控制者电脑上同样打开“命令提示符”,输入命令cloudflared.exe access rdp --hostname test.letmefly.xyz --url rdp://localhost:1234,就可以远程连接另一台电脑了(Win + R -> cmd -> 回车 -> 替换这个命令并回车 -> Win + R -> mstsc -> 回车 -> localhost:3089 -> 填写远程连接的用户名并回车 -> 输入密码并完成远程连接

原理解释

关于我为什么要写这篇文章,是因为网上很多现有文章之说操作步骤不讲原理。有的跟着配置下来在自己电脑上还会踩上不少坑。因此我想简单介绍下它的原理,以及为什么这么操作。

整体原理

被控制电脑没有公网IP也没有处于控制者电脑所在局域网中,控制者电脑想要连接它但是访问不到它。

但是Cloudflare有公网IP,因此被控制电脑要安装cloudflared客户端并输入命令,其实是被控制电脑与cloudflare服务器建立了一个持久性连接(隧道)。

控制者电脑访问配置的域名,流量到达cloudflare服务器,借助cloudflare服务器实现与被控制者的通信。

准确来说,不知道这样能否被称为是内网穿透(因为所有流量大概都需要经过cloudflare服务器转发一下,并没有控制者与被控制者两台电脑的直接通信),应该是属于内网穿透的吧。

新建Tunnel是在干什么

新建Tunnel就是新建一个cloudflare与被控制者之间的“隧道”,二者通过“隧道”保持持久化连接。

被控制者电脑为何要安装cloudflared客户端并输入那一串命令

安装客户端是因为要借助客户端来建立与cloudflare服务器之间的隧道。

那串命令是为了让cloudflare服务器知道这台电脑要连接哪个隧道(起识别作用的是命令最后的那串“乱码”)。

配置域名(外网访问与内网映射规则)是在干什么,具体应该怎么配置

配置了访问规则,cloudflare才知道流量到来时才能如何转发、通过哪个隧道以及什么规则转发给哪个机器。

第一行是控制者(访问者)相关的配置。子域名(Subdomain)是自己定义的,域名(Domain)是你购买/拥有的绑定在Cloudflare的域名,路径(Path)是访问哪个路径时转发规则生效。

第二行是被控制者(被访问者)相关的配置。Type是协议类型(RDP是微软远程桌面连接的协议),URL是流量要被转发到哪里(被访问者的RDP服务的地址)。

例如我上述配置中,SubdomaintestDomainletmefly.xyzTypeRDPURLlocalhost:3389。因此我在控制者电脑上使用RDP协议访问test.letmefly.xyz时,流量会被转发到被控制者的localhost:3389上。

访问者电脑上的配置是怎么回事

访问者电脑上输入的那串命令相当于是把对于localhost:1234RDP访问转发到test.letmefly.xyz上,因此mstsc后输入localhost:1234流量就可以被转发到test.letmefly.xyz然后被通过隧道转发到被控制机器的localhost:3389上,从而实现了远程桌面连接。

注意,命令中的test.letmefly.xyz需要修改成你所配置的域名,1234可以修改,但注意不要和其他端口冲突(比如控制者主机上也开启了RDP能被其他设备控制的话3389端口很可能被占用了)。

后记

同步发文于CSDN,原创不易,转载经作者同意后请附上原文链接哦~

Tisfy:https://letmefly.blog.csdn.net/article/details/143114828

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/57723.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 NumPy 和 Matplotlib 实现交互式数据可视化

使用 NumPy 和 Matplotlib 实现交互式数据可视化 在数据分析中,交互式可视化可以更好地帮助我们探索和理解数据。虽然 Matplotlib 是静态绘图库,但结合一些技巧和 Matplotlib 的交互功能(widgets、event handlers),我…

水轮发电机油压自动化控制系统解决方案介绍

在现代水电工程中,水轮机组油压自动化控制系统,不仅直接关系到水轮发电机组的安全稳定运行,还影响着整个水电站的生产效率和经济效益。 一、系统概述 国科JSF油压自动控制系统,适用于水轮发电机组调速器油压及主阀(蝶…

Dongle Sentinal在Jenkins下访问不了的问题

背景: 工作站部署的jenkins的脚本无法正常打包,定位后发现是本地获取不了license,但是使用usb over network的远程license都能获取并正常打包 分析: 获取不了license的原因是本地无法识别dongle。根据提供信息,之前…

SAP_SD模块-销售订单创建价格扩大10倍问题分析及后续订单价格批量更新问题处理

一、业务背景 我们公司的销售订单,是通过第三方销售管理平台创建好订单后,把表头和行项目数据,定时推送到SAP;SAP通过自定义表ZZT_ORDER_HEAD存放订单表头数据,通过ZZT_ORDER_DETAIL存放行项目数据;然后再用…

探索AI人工智能机器学习:解锁未来科技的钥匙

作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注 座右铭: 云端筑梦,数据为翼,探索无限可能,引领云计算新纪元 个人主页:团儿.-CSDN博客 前言:…

【C#】使用Visual Studio创建Windows Forms应用程序计算对角线之和

文章目录 使用Visual Studio创建Windows Forms应用程序计算对角线之和步骤 1: 创建新的Windows Forms应用程序项目步骤 2: 设计窗体步骤 3: 编写代码步骤 4: 运行程序步骤 5: 运行结果 使用Visual Studio创建Windows Forms应用程序计算对角线之和 大家好!今天&…

Spring Boot:植物健康的智能守护者

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…

【网络原理】TCP/IP五层网络模型之网络层-----IP协议详解,建议收藏!!

💐个人主页:初晴~ 📚相关专栏:计算机网络那些事 前几篇文章中我们深入研究了TCP协议,因为TCP协议在我们日常开发中的使用频率非常高。而相比之下,IP协议与我们普通程序员关系就没那么近了。一般是专门开发…

数字 图像处理算法的形式

一 基本功能形式 按图像处理的输出形式,图像处理的基本功能可分为三种形式。 1)单幅图像 单幅图像 2)多幅图像 单幅图像 3)单(或多)幅图像 数字或符号等 二 几种具体算法形式 1.局部处理邻域对于任一…

libevent源码剖析-event

1 简介 本文来重点介绍下libevent中的event事件,在类unix系统中编写网络程序时,我们经常需要处理3类事件-IO事件&signal事件&timer事件,libevent通过reactor来注册&调度&处理IO事件,并且也将signal和timer事件借助…

2024年10月21日计算机网络,乌蒙第一部分

【互联网数据传输原理 |OSI七层网络参考模型】 https://www.bilibili.com/video/BV1EU4y1v7ju/?share_sourcecopy_web&vd_source476fcb3b552dae37b7e82015a682a972 mac地址相当于是名字,ip地址相当于是住址,端口相当于是发送的东西拿什…

SPI通信(W25Q64)

目录 一.前言 1.SPI的简介 2.SPI的应用 3. SPI的硬件电路 4. SPI硬件电路设计的核心 5. SPI时序基本单元 二. W25Q64简介 1. 芯片简介 2. (非)易失性存储器 3. 引脚定义 4. W25Q64框图 5. Flash操作的注意事项 三. SPI读写W25Q64(使用软件…

一文教会你如何使用 iLogtail SPL 处理日志

作者:阿柄 随着流式处理的发展,出现了越来越多的工具和语言,使得数据处理变得更加高效、灵活和易用。在此背景下,SLS 推出了 SPL(SLS Processing Language) 语法,以此统一查询、端上处理、数据加工等的语法&#xff0…

vue3使用i18n做国际化多语言,实现常量跟随语言切换翻译

因为我有一个常量的配置文件在项目中,而且有中文内容,我想在切换语言的时候,跟着这个翻译也实时切换,就可以使用computed计算属性实现。 把name改成下面的样子: name: computed(() > t(pad.regularMode)), 就可以…

Springboot配置方式和优先级

Springboot配置方式和优先级 调试思路key的获取过程application.properties优先级总结 在阅读开源项目时看到一种不太常见的属性配置方式,在项目根路径定义配置文件。并且提到下面的顺序,验证并看一下源码实现。 # spring boot支持外部application.yml …

AI服务器HBA卡的国产PCIe4.0/5.0 switch信号完整性设计与实现,支持定制(二)

表 2 展示了 PCB 板所选介质材料 PSR4000AUS703 , &#xff3…

FreeRTOS实时操作系统(2)

前言:FreeRTOS内容较多,分篇发布,较为基础,旨在梳理知识,适合入门的同学 (基于正点原子STM32F103开发板V2) (对于本篇,若有疑问,欢迎在评论区留言&#xf…

萤石设备视频接入平台EasyCVR私有化视频平台变电站如何实现远程集中监控?

一、方案背景 随着城市经济的发展和电力系统的改造,变电站的数量和规模逐渐增加,对变电站的安全管理和监控需求也越来越高。视频监控系统作为重要的安全管理手段,在变电站中起到了关键的作用。 目前青犀视频研发的萤石设备视频接入平台EasyC…

[网络协议篇] UDP协议

文章目录 1. 简介2. 特点3. UDP数据报结构4. 基于UDP的应用层协议5. UDP安全性问题6. 使用udp传输数据的系统就一定不可靠吗?7. 基于UDP的主机探活 python实现 1. 简介 User Datagram Protocol,用户数据报协议,基于IP协议提供面向无连接的网…

Spring AOP原理

(一)Spring AOP原理 Spring AOP是基于动态代理来实现AOP的,但是在讲之前我们要来先认识一下代理模式 1.代理模式 其实代理模式很好理解,简单来说就是,原本有一个对象,然后来了另一个对象(我们称…