内网穿透:如何借助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.rhkb.cn/news/456704.html

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

相关文章

代理与 Hubstudio 集成

文章目录 一、什么是 Hubstudio?二、为什么是动态住宅代理?三、使用 Hubstudio 设置 Smartdaili 代理3.1. 与动态住宅代理的整合 3.2. 使用 Hubstudio 设置代理 总结 将 Smartdaili 动态住宅代理与 Hubstudio 反检测浏览器配对使用,即可轻松管理多个账户…

npm、yarn、pnpm的workspaces使用

示例项目中总会遇到npm的packages中出现的workspaces键值对,自己的项目中没接触过这个东西,到底是什么?怎么用的?简单研究记录一下: abbrev是一个npm包,提供缩写展开功能。‌ 当你定义一个缩写后&#xff0…

设计一个html+css+js的注册页,对于注册信息进行合法性检测

综合使用HTML、JavaScript和CSS进行注册页面设计,实现以下若干功能: 注意整个页面的色调和美观使用FramesetTable布局(div也可)对用户ID和用户名、口令不符合条件及时判断对口令不一致进行及时判断(34的及时判断&#…

使用 Pake 一键打包网页为桌面应用 / 客户端

项目 项目:https://github.com/tw93/Pake/ 免费ICO图片:https://icon-icons.com/zh/ 设置环境 以下教程仅针对windows系统适用 请确保您的 Node.js 版本为 18 或更高版本 文档:https://v1.tauri.app/zh-cn/v1/guides/getting-started/prerequ…

Web3的核心概念:去中心化如何改变互联网

Web3,作为互联网的下一代技术架构,正在重新定义用户与数据、平台之间的关系。与以往的Web2.0时代相比,Web3的核心在于去中心化的理念,旨在通过区块链等技术实现更高的透明度、安全性和用户控制权。 1. 数据的掌控与隐私保护 在W…

分页列表缓存

写这篇文章&#xff0c;我们聊聊分页列表缓存&#xff0c;希望能帮助大家提升缓存技术认知。 1 直接缓存分页列表结果 这是最简单易懂的方案&#xff0c;我们按照不同的分页条件查询出结果后&#xff0c;直接缓存分页结果 。 伪代码如下&#xff1a; public List<Product&…

基于LSTM-Transformer混合模型实现股票价格多变量时序预测(PyTorch版)

前言 系列专栏:【深度学习&#xff1a;算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域&#xff0c;讨论了各种复杂的深度神经网络思想&#xff0c;如卷积神经网络、循环神经网络、生成对…

修改huggingface的缓存目录以及镜像源

执行以下语句查看当前配置 huggingface-cli env默认输出应该如下 (py39-transformers) PS D:\py_project\transformers_demo> huggingface-cli envCopy-and-paste the text below in your GitHub issue.- huggingface_hub version: 0.26.1 - Platform: Windows-10-10.0.22…

09_实现reactive之代理 Set 和 Map

目录 创建代理建立响应式联系避免污染原始数据处理 forEachfor...ofvalues 与 keys 方法 Set 和 Map 都有特定的属性和方法来操作自身&#xff0c;因此需要单独处理。 创建代理 我们来看一段案例代码&#xff0c;体验一下和它们的独特之处&#xff0c;如下&#xff1a; const…

第二代 GPT-SoVITS V2:解锁语音克隆与合成的无限可能

在 AI 技术蓬勃发展的今天&#xff0c;第二代 GPT-SoVITS V2 如一颗璀璨的明星闪耀登场&#xff0c;为语音处理领域带来了前所未有的变革。它是一款集先进技术与强大功能于一身的声音克隆与语音合成工具&#xff0c;由 RVC 变声器创始人 “花儿不哭” 与 AI 音色转换技术 Sovit…

使用 pydub 的 AudioSegment 获取音频时长 - python 实现

通过使用 pydub 的 AudioSegment 获取音频时长&#xff0c;音频常用格式如 m4a,wav等。 安装 python 库&#xff1a; pip install pydub 获取 m4a 格式的音频时长代码如下&#xff0c;代码如下&#xff1a; #-*-coding:utf-8-*- # date:2024-10 # Author: DataBall - XIAN #…

mac nwjs程序签名公证(其他mac程序也一样适用)

为什么需要公证 mac os14.5之后的系统&#xff0c;如果不对应用进行公证&#xff0c;安装&#xff0c;打开&#xff0c;权限使用上都会存在问题&#xff0c;而且有些问题你强制开启&#xff08;sudo spctl --master-disable&#xff09;使用后可能会有另外的问题&#xff0c; …

JSON Web Token (JWT)的简单介绍、验证过程及令牌刷新思路

目录 一、JWT 1、什么是Jwt 2、为什么要使用Jwt 3、应用场景 4.Jwt的组成 4.1、Header 4.2、Payload 4.3、signature 二、Jwt验证过程 1、生成Jwt令牌 2、解析旧的Jwt 3、复制Jwt 4、Jwt有效时间测试 三、Jwt令牌刷新思路 1、配置JwtFilter过滤器 2、登录生成Jwt令…

解决Redis缓存穿透(缓存空对象、布隆过滤器)

文章目录 背景代码实现前置实体类常量类工具类结果返回类控制层 缓存空对象布隆过滤器结合两种方法 背景 缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在&#xff0c;这样缓存永远不会生效&#xff0c;这些请求都会打到数据库 常见的解决方案有两种&#xff0c;分别…

2024年10月24日第一部分AOP编程和自信

测试 Spring通知&#xff08;前置通知&#xff0c;后置通知&#xff0c;返回通知&#xff0c;异常通知&#xff0c;环绕通知&#xff09;_前置通知后置通知环绕通知-CSDN博客 一、前置通知 --前置通知 : 在方法执行之前执行的通知 --前置通知使用 Before 注解 , 并将切入点表…

【2024CANN训练营第二季】使用华为云体验AscendC_Sample仓算子运行

环境介绍 NPU&#xff1a;Ascend910B2 环境准备 创建Notebook 华为云选择&#xff1a;【控制台】-【ModelArts】 ModelArts主页选择【开发生产】-【开发空间】-【Notebook】 页面右上角选择【创建Notebook】 选择资源 主要参数 规格&#xff1a;Ascend: 1*ascend-snt…

VS code部署Vue项目Demo

在之前已经在IDEA中部署过vue项目demo。本次在上次基础上进行。 IDEA中Vue的安装和使用【window10】_idea安装vue-CSDN博客 步骤一、安装VSCode 双击安装即可 步骤二&#xff1a;检查npm是否安装 步骤三&#xff1a;检查vue是否安装 &#xff08;vue create 项目名 只要在v…

【AscendC算子开发】笔记1 算子开发哲学

重看这门课&#xff0c;有很多内容的认识更深了&#xff0c;做一些记录。 为什么不能将网络节点融合 这个问题关联到另一个问题&#xff1a;为什么我们需要激活函数&#xff1f; 使用线性的神经元堆叠得到的方程最后也是线性方程&#xff0c;无法表征非线性的信息&#xff0c…

微信网页授权回调地址放多个参数的方法

https://open.weixin.qq.com/connect/oauth2/authorize?appidAPPID&redirect_uriREDIRECT_URI&response_typecode&scopeSCOPE&stateSTATE#wechat_redirect 跳转后地址 redirect_uri/?codeCODE&stateSTATE。 redirect_uri如果不进行urlencode编码, 跳转后…

C++20中头文件syncstream的使用

<syncstream>是C20中新增加的头文件&#xff0c;提供了对同步输出流的支持&#xff0c;即在多个线程中可安全地进行输出操作&#xff0c;此头文件是Input/Output库的一部分。包括&#xff1a; 1.std::basic_syncbuf&#xff1a;是std::basic_streambuf的包装器(wrapper)&…