内网穿透方案@远程串流控制方案@简单易用的虚拟组网方案

文章目录

    • 串流控制和远程桌面控制
      • 相关概念
    • 串流软件和方案
      • 商业软件方案
      • 开源方案
        • Sunshine
          • sunshine 自启设置
        • MoonLight
    • 利用串流软件远程控制
    • VPN 虚拟组网实现异地设备串流控制
    • 内网穿透
      • 关键概念
    • 内网穿透方案
      • 简单易用相关服务软件
      • 使用Ngrok实现内网穿透
      • 开源软件方案Frp

串流控制和远程桌面控制

  • 我原本是想找远程桌面控制方案,特别是异地远程桌面,后来了解到了游戏串流软件也不仅仅可以远程游戏,还可以远程控制桌面,在画面显示上有更多的选项配置
    • 串流和远程桌面有什么区别 – PingCode

相关概念

  • 串流(Streaming)是一种数据传输方式,尤其在多媒体内容如音频和视频的传输中非常常见。它允许数据在传输过程中被连续地接收并几乎立即开始播放,而无需等待整个文件下载完成。串流技术的核心优势在于它能够提供即时的内容访问,减少用户的等待时间,同时也减少了对存储空间的需求,因为内容不需要被永久保存在本地设备上。

    串流的一般含义:
    在一般情况下,串流指的是任何类型的内容(如音乐、电影、电视节目、现场直播等)通过互联网实时传输的过程。例如,Netflix、YouTube、Spotify等服务提供的视频和音乐内容就是通过串流技术送达用户的。这种技术使得用户可以即时观看或收听内容,只要他们的网络连接稳定。

    游戏串流:
    游戏串流是串流技术的一个特定应用,专注于电子游戏的实时传输。它可以分为两种主要形式:

    1. 本地串流:这是在用户自己的设备之间进行的串流,比如一台游戏主机或高性能PC将游戏画面串流到另一台设备(如平板电脑、智能手机或另一台PC)上。这种情况下,游戏仍然在本地运行,只是显示在另一个屏幕上。NVIDIA的GeForce Experience、Moonlight、Steam Link等服务提供了这样的功能。

    2. 云游戏串流:在这种模式下,游戏实际上是在远程服务器上运行,服务器处理所有的计算和图形渲染,然后将游戏画面和音频作为流媒体实时发送给用户。用户只需通过互联网连接,就可以在任何兼容的设备上玩游戏,而无需下载或安装游戏本身。Google Stadia、NVIDIA GeForce Now、Xbox Cloud Gaming等服务都是基于云游戏串流的例子。

    游戏串流不仅提供了游戏内容的即时访问,还允许用户在多种设备上享受游戏,甚至在不具备足够游戏性能的设备上也能玩高端游戏。然而,游戏串流的质量高度依赖于网络连接的速度和稳定性,任何延迟或带宽不足都可能影响游戏体验。

串流软件和方案

商业软件方案

  • 使用商业软件Connect to Work or Games from Anywhere | Parsec

  • 开箱即用,有免费套餐,内置组网,一般可以远程串流;但是内置组网功能不如专业的软件,完整功能是付费的,可以考虑其他方案

开源方案

需要一定的配置和操作,灵活效果上限高

Sunshine
  • LizardByte/Sunshine: Self-hosted game stream host for Moonlight. (github.com)

    • Sunshine documentation (lizardbyte.dev)
    • Release · LizardByte/Sunshine (github.com)
  • sunshine的发型版本很多,体积不大,对于windows,可以选择免安装版本(portable)

    • 如果选择安装版,安装中途可能会下载一些组件,可能要到github上下载,而国内下载速度很慢,这会导致安装时间大大加长
    • 因此这里推荐直接用免安装版,体积略大点
sunshine 自启设置
  • 现在的版本可能会开机自启,比如Version v0.23.1版本

  • 在这个版本sunshine会注册一个自定运行的服务,您可以这样检查或将自动运行的服务类型改为手动

    • 管理员权限打开powershell命令行执行以下内容

      PS> get-service -Name Sunshine*Status   Name               DisplayName
      ------   ----               -----------
      Running  SunshineService    Sunshine Service
      

      禁用自启动

      Set-Service -Name SunshineService -StartupType Manual
      

      下次重启就可以看到效果

MoonLight
  • Moonlight Game Streaming: Play Your PC Games Remotely (moonlight-stream.org)

  • Releases · moonlight-stream/moonlight-android (github.com)

  • android 还可以在F-droid市场中下载到app客户端

利用串流软件远程控制

典型的游戏串流软件组合Sunshine 和 Moonlight 组合主要是为了游戏串流而设计的,但它们确实可以用来控制远程桌面。

该组合不仅可以游戏串流,也可以串流桌面和远程控制桌面(和远程桌面的功能部分重叠,但又有不同)

它与传统的远程桌面控制方案(如Microsoft的Remote Desktop Protocol (RDP),TeamViewer,向日葵等)有几个关键的不同点:

  1. 目的和优化方向

    • Sunshine + Moonlight:这些工具特别优化了游戏画面的实时传输,注重低延迟和高质量的视频流传输,以确保游戏体验尽可能流畅。
    • 传统远程桌面方案:设计用于一般的桌面环境控制,包括办公应用、文件管理等,更注重整体的系统性能和安全性。
  2. 图形处理

    • Sunshine + Moonlight:利用GPU加速来处理视频编码和解码,这对于游戏串流至关重要。
    • 传统远程桌面方案:可能更多依赖CPU进行桌面画面的压缩和传输,这在处理复杂图形时效率较低。
  3. 延迟

    • Sunshine + Moonlight:力求最小化延迟,这对于实时交互的游戏非常重要。
    • 传统远程桌面方案:可能有更高的延迟,因为它们不一定针对实时交互进行优化。
  4. 网络要求

    • Sunshine + Moonlight:可能需要更好的网络条件以支持高质量的视频流传输。
    • 传统远程桌面方案:通常能够更好地适应不同的网络条件,包括低带宽环境。
  5. 兼容性和平台支持

    • Sunshine + Moonlight:虽然跨平台,但主要是为了游戏串流设计,可能在某些非游戏场景下的兼容性不如专门的远程桌面软件。
    • 传统远程桌面方案:广泛支持各种操作系统和设备,适用于多种远程工作和管理场景。
  6. 安全性和管理功能

    • Sunshine + Moonlight:主要关注点不在企业级的安全性和管理功能上。
    • 传统远程桌面方案:通常包含更强大的身份验证机制、访问控制和审计功能,适合企业和组织使用。

因此,尽管Sunshine 和 Moonlight 可以在某种程度上实现远程桌面控制,但它们最适合游戏串流场景。对于需要全面控制、安全性和企业级功能的远程桌面使用场景,传统的远程桌面控制方案更为合适。

VPN 虚拟组网实现异地设备串流控制

  • 同一个局域网内的设备可以方便的远程串流控制或者远程桌面
  • 如果要对不同局域网内的设备(或者可以上网但是没有可用公网ip)间做类似的事情需内网穿透或针对异地设备组网
  • 方案有许多,比如TailScale或者国内的皎月连NatPierce也很方便
  • 借助虚拟组网软件,可以把局域网内的串流控制迁移到非局域网的设备间去(当然局域网内经过的路径更简单,所以画质和刷新率上限更高)
  • NatPierce配合前面的Sunshine和MoonLight组合拳,可以实现非同一个局域网的两个设备进行远程控制或者投屏控制,而且和windows自带的远程控制不同,组合拳允许物理机和远程控制显示相同的画面,两边都可以施加控制,并且在分辨率和刷新率上等显示设置有更丰富的选项;
  • 此外,还可以安装虚拟机显示器等方法,sunshine和moonlight可以为您的计算机添加一个副屏(用一个平板或者其他大屏设备)实现可触摸的副屏,甚至可以无线地搬到其他地方,可玩性高
  • 而windows自带的远程桌面使用简单,不需要安装软件(不过也需要服务端是专业版系统已上或者打补丁)

内网穿透

内网穿透(NAT Traversal),也称为内网映射,是一种技术,用于使处于防火墙或NAT(网络地址转换)设备后面的设备能够与外部互联网进行通信。

这对于需要外部访问内部网络服务(如远程桌面、家庭服务器、物联网设备等)特别重要。

关键概念

  1. NAT(网络地址转换)

    • 静态NAT:将内部网络的私有IP地址静态映射为外部网络的公共IP地址。
    • 动态NAT:使用一组公共IP地址动态映射内部网络的私有IP地址。
    • PAT(端口地址转换):也称为NAT Overload,将多个私有IP地址映射到一个公共IP地址,但使用不同的端口号来区分不同的内部设备。
  2. 防火墙:一种网络安全系统,监控和控制进入和离开网络的流量,防止未经授权的访问。

内网穿透方案

相关方案有不少,有些有一定的免费额度

简单易用相关服务软件

ZeroTier和Tailscale,皎月连(NatPierce)等工具为没有公网IP的设备提供虚拟组网确实属于内网穿透技术的一种应用。内网穿透通常指的是在没有直接公网IP地址的情况下,使位于不同局域网(LAN)内的设备能够像在同一局域网内那样通信的技术。

内网穿透技术允许设备绕过NAT(网络地址转换)限制,即使它们处于不同的私有网络中也能互相通信。ZeroTier和Tailscale通过创建一个虚拟的覆盖网络(overlay network),使得参与的设备看起来像是连接在一个共同的局域网上,从而实现了设备间的直接通信,就好像它们共享同一个本地网络一样。

这些工具通常会为每个设备分配一个虚拟的私有IP地址,并通过互联网建立隧道来转发数据包,这样就可以从外部网络访问内部网络的设备,或者让内部网络的设备之间相互通信,而无需考虑它们各自的物理网络位置或是否拥有公网IP地址。

使用Ngrok实现内网穿透

Ngrok是一个非常流行的内网穿透工具,允许你将本地服务器公开到互联网上。

  • Overview | ngrok documentation

  • Quickstart | ngrok documentation

Ngrok 为开发测试用途提供了一个有限的免费套餐

  • 注册并下载Ngrok:https://ngrok.com/

  • 例如映射http端口,启动Ngrok并指定本地端口:

    • ngrok http documentation
    ngrok http 8080
    

    这将本地的8080端口映射到一个公开的URL。

    又比如,我将Alist 通过Ngrok提供的内网穿透服务,得到公网可以访问的https连接:

    PS> ngrok http 5244
    #生成内容示例
    ngrok           (ctrl+c to quit)
    sign up to try new private endpoints https://ngrok.com/new-features-update?ref=private
    session status      online
    Account          xuggoledeyouxiang5@gmail.com (Plan: Free)
    Version          3.12.0
    Region          Japan (jp)
    Latency          316ms
    Web Interface       http://127.0.0.1:4040
    Forwarding        https://abf8--139-174.ngrok-free.app -> http://localhost:5244
    connections        ttl opn rti rt5 p50 p90
    0  0  0.00 0.00 0.00 0.00HTTP Requests
    -------------20:49:05.428 CST GET  /d/ColorfulPC/Music/ChineseSongs/05_         -         .mp3                     
    2020:49:05.102 CST GET  /d/ColorfulPC/Music/ChineseSongs/05_         -         .mp3
    2020:49:05.428 CST GET  /d/ColorfulPC/Music/ChineseSongs/05_         -         .mp3
    2020:48:54.304 CST POST /api/fs/list                                                           
    2020:48:39.306 CST GET  /d/ColorfulPC/Music/ChineseSongs/Em Sẽ L    Cô Dâu - Minh&nb 
    2020:48:21.102 CST GET  /Music/ChineseSongs/undefined                                                   
    2020:48:20.254 CST GET  /Music/ChineseSongs/undefined
    2020:48:20.254 CST GET  /d/ColorfulPC/Music/ChineseSongs/05_         -         .mp3
    2020:48:15.237 CST GET  /assets/audio.e205396a.js
    2020:48:13.189 CST GET  /assets/File.3cee378c.js  
    
    • 其中web interface是内网穿透管理页面http://127.0.0.1:4040
    • Forwarding是穿透后的https连接,其他能够访问互联网的设备可以根据这个链接访问到您映射出来的端口及其内容
    • 之后所有访问都会被记录在web interface
    • 详情参考Ngrok文档(注册和登录可能需要点魔法)
  • 访问提供的公开URL,即可从外部访问本地服务器。

开源软件方案Frp

  • 需要一个具有公网IP地址的服务器,以供自己配置穿透服务
  • frp (gofrp.org)
    • 概念 | frp (gofrp.org)
    • fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet. (github.com)
    • 示例 | frp (gofrp.org)

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

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

相关文章

40个高阶ChatGPT学术论文指令集(附GPT使用链接)

我精心挑选的40个顶尖ChatGPT学术论文指令集,无疑将成为你撰写论文和开展研究的珍贵资源,极力推荐你珍藏起来!这些建议极具实用价值,能有效提高你的研究工作效率,使得论文撰写过程轻松许多。 在开始前,提示…

力扣 454四数相加

这个题给了四个数组,可以两两判断,就类比两数相加那道题了 对于num1 num2 用unordered_map存储,key是num1,num2中数字相加之和,value是值出现的次数 for(int a:num1) {for(int b:num2 {map[ab]; 最后要计算四个数…

8、matlab彩色图和灰度图的二值化算法汇总

1、彩色图和灰度图的二值化算法汇总原理及流程 彩色图和灰度图的二值化算法的原理都是将图像中的像素值转化为二值(0或1),以便对图像进行简化或者特定的图像处理操作。下面分别介绍彩色图和灰度图的二值化算法的原理及流程: 1&a…

坑2.Date类型的请求参数

前端 <el-form-item label"结束日期" prop"endTime"><el-date-pickerv-model"dataForm.endTime"type"date"value-format"yyyy-MM-dd HH:mm:ss"placeholder"选择日期"></el-date-picker></el…

pip install xxx报错ERROR: No matching distribution found for openturns

目录 问题描述解决方案解决方案一&#xff1a;配置代理解决方案二&#xff1a;下载包后手动安装解决方案三&#xff1a;更新pip解决方案四&#xff1a;使用conda安装解决方案五&#xff1a;跳过代理综合步骤 问题描述 C:\Users\54867>pip install openturns WARNING: Ignor…

Python功能制作之获取CSDN所有发布文章的对应数据

大家好&#xff0c;今天我要分享的是一个实用的Python脚本&#xff0c;它可以帮助你批量获取CSDN博客上所有发布文章的相关数据&#xff0c;并将这些数据保存到Excel文件中。此外&#xff0c;脚本还会为每篇文章获取一个质量分&#xff0c;并将这个分数也记录在Excel中。让我们…

多周期路径的约束与设置原则

本节将回顾工具检查建立保持时间的原则&#xff0c;接下来介绍设置多周期后的检查原则。多周期命令是设计约束中常用的一个命令&#xff0c;用来修改默认的建立or保持时间的关系。基本语法如下 默认的建立时间与保持时间的检查方式 DC工具计算默认的建立保持时间关系是基于时钟…

Python实战:拥有设闹钟功能的可视化动态闹钟的实现

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

6-5,web3浏览器链接区块链(react+区块链实战)

6-5&#xff0c;web3浏览器链接区块链&#xff08;react区块链实战&#xff09; 6-5 web3浏览器链接区块链&#xff08;调用读写合约与metamask联动&#xff09; 6-5 web3浏览器链接区块链&#xff08;调用读写合约与metamask联动&#xff09; 这里就是浏览器端和智能合约的交…

高职Web全栈式开发实训室解决方案

一、专业背景 随着网络普及和发展&#xff0c;网站作为一种很强大的工具和平台愈来愈融入了人们的生活&#xff0c;而与用户关系最密切的前端技术也逐渐获得应有的重视。咱们能够看到前端重构的行业发展潜力巨大&#xff0c;各大知名的网络公司对前端人才的求饥若渴。近年来HT…

DID差分模型案例集(传统DID、队列DID、渐近DID、空间DID、PSM-DID)

双重差分&#xff08;DID&#xff09;模型是一种广泛应用于经济学、社会学等领域的统计方法&#xff0c;主要用于评估政策或事件的因果效应。以下是DID模型几个重要变体的简要介绍&#xff1a; 1、传统DID&#xff08;Traditional DID&#xff09;&#xff1a;这是DID模型的基…

【Qt 从基础】创建一个 Qt 项目后,自动生成的代码和文件分析

文章目录 1. Sources 目录下&#xff0c;main.cpp 文件的分析&#x1f427;2. Headers 目录下&#xff0c;widget.h 文件的分析&#x1f427;3. Sources 目录下&#xff0c;widget.cpp 文件的分析&#x1f427;4. Forms 目录下&#xff0c;widget.ui 文件的分析&#x1f427;5.…

Perl词法作用域:自定义编程环境的构建术

&#x1f3ad; Perl词法作用域&#xff1a;自定义编程环境的构建术 在Perl编程中&#xff0c;词法作用域&#xff08;lexical scoping&#xff09;是一种控制变量可见性的方式&#xff0c;它允许变量在特定的作用域内可见&#xff0c;从而避免变量名的冲突。Perl提供了灵活的机…

目标检测基本标注工具-labelImg安装与使用

&#x1f349;一、安装 1.1 打开conda创建虚拟环境&#x1f388; conda create -n labelImg python3.8 -y 1.2 激活labelImg虚拟环境&#x1f388; activate labelImg1.3 安装labelImg&#x1f388; pip install -i https://pypi.tuna.tsinghua.edu.cn/simple lab…

Protobuf: 大数据开发中的高效数据传输利器

作为一名大数据开发者&#xff0c;我经常需要处理海量的数据传输和存储。在这个过程中&#xff0c;选择一个高效、可靠的数据序列化工具至关重要。今天&#xff0c;我想和大家分享一下我在项目中使用 Protobuf 的经历。 目录 故事背景Protobuf 简介优点&#xff1a; 实战案例示…

uView、ColorUI与Vant框架的深入分析与案例实践

摘要&#xff1a; 随着移动开发技术的不断发展&#xff0c;框架的选择对于项目的成功至关重要。本文将对uView、ColorUI和Vant这三个主流移动端框架进行深入分析&#xff0c;探讨它们的优缺点&#xff0c;并通过实际案例展示如何根据项目需求选择合适的框架。 一、引言 在移动…

ls命令学习记录1

ls 1.列出文件和文件夹 ls命令应该是人们使用次数最多的一个命令。毕竟&#xff0c;在处理和使用目录中的文件之前&#xff0c;必须先知道目录中有哪些文件。这就是ls命令发挥作用的地方&#xff0c;因为它能够列出目录中的文件和子目录。 说明 ls命令听起来可能很简单&…

【人工智能】-- 受限玻尔兹曼机

个人主页&#xff1a;欢迎来到 Papicatch的博客 课设专栏 &#xff1a;学生成绩管理系统 专业知识专栏&#xff1a; 专业知识 文章目录 &#x1f349;引言 &#x1f349;受限玻尔兹曼机 &#x1f348;RBM的结构 &#x1f34d;RBM的架构图 &#x1f34d;RBM的经典实现 &…

函数练习•二 进阶题

# 进阶题 # 1.封装函数&#xff0c;比较某两个数的大小&#xff0c;返回较大的一个 # 2.封装函数&#xff0c;判断某个数是否是素数&#xff0c;返回结果(True或False) # 3.封装函数&#xff0c;计算2-100之间素数的个数&#xff0c;返回结果 # 挑战题(选做) # 1,封装函数&am…

给事务如何加行锁,表锁

因为MVCC&#xff0c;所以锁都不会阻止读 在 MySQL 中&#xff0c;UPDATE 等语句会自动获取被更新行的行级写锁&#xff08;排他锁&#xff09; 给事务加锁&#xff0c;而不是给语句加锁 加行锁后&#xff0c;等事务提交或者回滚就会自动释放 加行读锁后保证读时候没人修改…