初识Linux · NAT 内网穿透 内网打洞 代理
目录
前言:
内网穿透和打洞
NAPT表
内网穿透
内网打洞
正向/反向代理
前言:
本文算是网络原理的最后一点补充,为什么说是补充呢,因为我们在前面第一次介绍NAT的时候详细介绍的是报文从子网到公网,却没有介绍报文是怎么从公网到子网的,因为子网IP不能出现在公网上,公网的报文是怎么一步一步交付的呢?这就是我们今天要讨论的一点内容。
接着补充几个点,比如内网穿透和内网打洞的概念,其实NAT也是内网穿透和内网打洞的基础,所以介绍了NAT之后理解内网穿透和内网打洞会容易很多。
最后补充一个代理的内容,我们的网络原理部分就算是结束了。那么废话不多说,直接进入主题!
内网穿透和打洞
NAPT表
介绍这两个之前,我们得先介绍一下NAT,回顾前文的NAT技术:
主机交付报文的时候,从自己路由器构建的局域网发送报文,因为该主机能够通过按位与获取到自己的网络号,所以得知自己发送的报文不是自己所处的局域网的,那么发送给到出入口路由器,出入口路由器获取到该报文之后,如果要进行NAT转换,就修改srcIP地址为该路由器的WAN口地址,随机再次对比网络号,根据自己维护的路由表确定发送到哪一个接口,接着以同样的操作向更上一层子网交付,最后直达公网。
以上是报文从子网到公网的到达,我们发现如果经过了NAT转换,那么IP地址确实是会修改为WAN口地址,但是同时,报文也丢失了自己最开始的子网地址,加上不同子网的IP是会重复的,所以如果不采取一点措施,报文是很难从公网到达子网的。
那么实际操作中,路由器不止会维护一张路由表,也会维护一张表叫做NAPT(Network Address and Port Translation Table)表,这张表通常是由出入网关路由器维护的,通过NAPT,可以成功映射子网IP和端口号到公网IP的端口号关系:
内部 IP | 内部端口 | 公网 IP | 公网端口 | 协议 | 状态 |
---|---|---|---|---|---|
192.168.1.2 | 50000 | 203.0.113.5 | 61000 | TCP | ESTABLISHED |
192.168.1.3 | 50001 | 203.0.113.5 | 61001 | TCP | ESTABLISHED |
大概就像这样,那么公网发送报文的时候,在每一跳中,不同的路由器查看自己的NAPT表里面,通过NAPT表,最后能成功找到对应的子网IP和端口号,那么报文也就能成功转发回去了。
上述其实要表达的就是报文如果从公网到达子网,一定是要经过NAPT表的。
那么问题来了,NAPT表怎么来的呢?或者说NAPT表的数据怎么来的呢?
我们都知道公网可以利用NAPT表来找到子网,但是二者没有通信之前,NAPT的表的数据按道理来说应该获取不到,都没有通信哪里来的“电话号码”呢?
而实际上,我们不能理解我们连上服务器发送数据才算通信,我们在TCP进行三次握手的时候就介绍了TCP在三次握手的过程会获取到对应的缓冲区的大小,这难道不是内网主机首次访问公网吗?QQ或者微信首次登录进去的时候,这难道不是首次访问公网吗?所以在建立连接的时候,内网首次访问公网,NAT路由器就会动态创建NAPT表的数据了。
内网穿透
对于内网穿透我们同样拿这张图举例,左边的子网假设是你家的子网,右边的子网假设是公司的子网,那么假设当你回家之后,公司让你在家办公,那么需要你连接到公司的你的电脑,那么问题来了,你该如何连接到公司的电脑呢?
即便这两台主机都能够访问公网,但是它们互相不知道对方的源IP和端口号,自然就不能进行通信。所以有一种做法是:从公网获取一个IP,这个IP的作用主要是用来中转,也就是说主机A给这个IP发送请求,然后该公网IP将请求转发给主机B,因为有NAPT表,所以请求从公网转发到子网也是非常容易的。
那么上述的过程,就成功的将公网IP作为一个中间站,通过请求的转发,让双方主机获取到了对方的IP和端口,从而可以直接进行通信。上述过程可以使用frp实现,我们后面可以详细测试一下内网穿透。
那么问题来了,我们平常的报文转发,好像就是这样的,通过NAT转发,找到对方的主机IP和端口,但是实际上,内网穿透解决的问题是:两台主机没有办法通信,所以我们需要一个IP进行中转
内网穿透也是非常常见的,如下表:
项目 | 报文转发 | 内网穿透 |
---|---|---|
适用前提 | 网络设备可控,有公网 IP,能设置端口映射 | 没有公网 IP、不能设置路由器 |
连接方向 | 被动接受请求 | 主动发起连接(绕过 NAT) |
是否常见 | 企业级或服务器环境常用 | 家用、办公网络、云主机常用 |
所以两台主机虽然“最终都能访问公网”,但 因为都在 NAT 后面,没有公网 IP,也没有端口映射,所以彼此找不到、也不能访问彼此,这才是“不能通信”的根本。
内网打洞
对于内网穿透和内网打洞来说其实都是基于NAT来看的,但是二者解决的问题不同,对于内网穿透来说解决的是两台主机无法直接通信的过程,不过在现在网络世界中,内网穿透实际上是非常非常非常常见了,可以说内网穿透已经是隐形实施的技术了。
但是对于内网打洞不一样,内网打洞的技术要求较为复杂,目前只有特殊情况才能使用。
对于打洞来说,它要完成的技术是诱骗服务器创建一个信道,比如主机A和主机B同时给对方的公网IP+port发送报文,让服务器误以为对方在直接通信,从而直接建立一个信道,这个信道叫做P2P信道,这样NAT设备就会误以为这是一条对话的回应从而发送数据。
所以难在如何诱骗NAT设备,并且取决于NAT设备的类型。
所以对于内网穿透和打洞来说,一个是通过服务器中转,一个是通过服务器建立一条信道,如下表:
项目 | 打洞(Hole Punching) | 内网穿透(NAT Traversal) |
---|---|---|
目标 | 实现 P2P 通信(点对点直连) | 让外部访问内网服务 |
是否依赖服务器 | 仅用于“打洞阶段”,成功后不再依赖服务器 | 全程依赖服务器转发或中继 |
通信路径 | 最终是客户端 <--> 客户端 | 最终是客户端 <--> 服务器 <--> 客户端 |
效率和延迟 | 更低(走直连) | 较高(多一跳服务器) |
失败场景 | 双方都是对称NAT、严格防火墙 | 永远不会失败,只是慢一点 |
正向/反向代理
代理(Proxy)是指一个中间服务器,用于转发客户端与目标服务器之间的请求和响应。它本质上是一种“中转站”,客户端不直接访问目标服务,而是通过代理服务器进行通信。就像这样:
[客户端] <---> [代理服务器] <---> [目标服务器]
代理的核心作用包括:
-
隐藏真实IP:保护用户隐私(正向)
-
突破访问限制:访问被封锁的网站(正向)
-
缓存与加速:减少重复请求,提升加载速度(正向)
-
审计与过滤:企业中可用于记录和控制网络行为(正向)
-
实现内网穿透:通过公网代理访问内网服务(反向)
因为对方收到的都是代理服务器的IP+port,是不知道真实的IP的,并且通过代理服务器,是能突破网站限制的,具体就不说了啊~
对于缓存和加速来说,因为多台主机共享一个代理服务器,那么如果多台主机都访问的资源是一样的,那么代理服务器可以将数据存储到本地,其他主机访问的时候就可以直接通过代理服务器访问,不用再走下一跳了。
第四点来说的,比如你用校园网知道你在干什么,企业同理。第五点的应用是反向代理,因为服务器也是主机,这个主机有的时候也需要访问你的主机,所以可以通过公网代理访问内网。当然了,对于正向代理和反向代理来说是不一样的:
对比维度 | 正向代理(Forward Proxy) | 反向代理(Reverse Proxy) |
---|---|---|
🔍 代理对象 | 客户端 | 服务端(目标服务器) |
📥 发起请求方 | 客户端主动请求代理 | 客户端直接请求代理(代理隐藏真实服务) |
🎯 主要用途 | 客户端访问受限制或无法直接访问的外部服务 | 客户端访问统一入口,后端真实服务被隐藏 |
🕵️ 隐藏对象 | 隐藏客户端身份和地址 | 隐藏服务端结构和真实地址 |
🧠 是否需客户端配置 | 需要(显式配置代理地址) | 不需要(客户端无感知) |
感谢阅读!
相关文章:
初识Linux · NAT 内网穿透 内网打洞 代理
目录 前言: 内网穿透和打洞 NAPT表 内网穿透 内网打洞 正向/反向代理 前言: 本文算是网络原理的最后一点补充,为什么说是补充呢,因为我们在前面第一次介绍NAT的时候详细介绍的是报文从子网到公网,却没有介绍报文…...
docker-compose使用详解
Docker-Compose 是 Docker 官方提供的容器编排工具,用于简化多容器应用的定义、部署和管理。其核心功能是通过 YAML 配置文件(docker-compose.yml)定义服务、网络和存储卷,并通过单一命令实现全生命周期的管理。以下从核心原理、安…...
使用计算机视觉实现目标分类和计数!!超详细入门教程
什么是物体计数和分类 在当今自动化和技术进步的时代,计算机视觉作为一项关键工具脱颖而出,在物体计数和分类任务中提供了卓越的功能。 无论是在制造、仓储、零售,还是在交通监控等日常应用中,计算机视觉系统都彻底改变了我们感知…...
并发编程中的对象组合的哲学
文章目录 引言对象组合与安全委托实例封闭技术基于监视器模式的对象访问对象不可变性简化委托原子维度的访问现有容器的并发安全的封装哲学使用继承使用组合小结参考引言 本文将介绍通过封装技术,保证开发者不对整个程序进行分析的情况下,就可以明确一个类是否是线程安全的,…...
03-Web后端基础(Maven基础)
1. 初始Maven 1.1 介绍 Maven 是一款用于管理和构建Java项目的工具,是Apache旗下的一个开源项目 。 Apache 软件基金会,成立于1999年7月,是目前世界上最大的最受欢迎的开源软件基金会,也是一个专门为支持开源项目而生的非盈利性…...
禁忌搜索算法:从原理到实战的全解析
禁忌搜索算法:从原理到实战的全解析 一、算法起源与核心思想 禁忌搜索(Tabu Search, TS)由美国工程院院士Fred Glover于1986年正式提出,其灵感源于人类的记忆机制——通过记录近期的搜索历史(禁忌表)&…...
从加密到信任|密码重塑车路云一体化安全生态
目录 一、密码技术的核心支撑 二、典型应用案例 三、未来发展方向 总结 车路云系统涉及海量实时数据交互,包括车辆位置、传感器信息、用户身份等敏感数据。其安全风险呈现三大特征: 开放环境威胁:V2X(车与万物互联࿰…...
【ffmpeg】SPS与PPS的概念
PPS(Picture Parameter Set)详解 PPS(图像参数集)是H.264/H.265视频编码标准中的关键数据结构,与SPS(序列参数集)共同组成视频的解码配置信息,直接影响视频的正确解码和播放。以下是…...
Java垃圾回收与JIT编译优化
1. Java中的垃圾回收 垃圾回收是Java内存管理的核心,负责自动回收不再被应用程序引用的对象内存,从而防止内存泄漏并优化资源使用。以下详细介绍垃圾回收的机制、算法及优化实践。 1.1 垃圾回收的必要性 垃圾回收解决了手动内存管理中的常见问题,如内存泄漏和悬空指针。它…...
mmaction2——tools文件夹下
build_rawframes.py 用法示例 python tools/data/build_rawframes.py data/videos data/frames --task rgb --level 2 --ext mp4 --use-opencv --num-worker 8总结: 只需要 RGB 帧,推荐 --use-opencv,简单高效,无需额外依赖。 …...
论文阅读:Next-Generation Database Interfaces:A Survey of LLM-based Text-to-SQL
地址:Next-Generation Database Interfaces: A Survey of LLM-based Text-to-SQL 摘要 由于用户问题理解、数据库模式解析和 SQL 生成的复杂性,从用户自然语言问题生成准确 SQL(Text-to-SQL)仍是一项长期挑战。传统的 Text-to-SQ…...
Devicenet主转Profinet网关助力改造焊接机器人系统智能升级
某汽车零部件焊接车间原有6台焊接机器人(采用Devicenet协议)需与新增的西门子S7-1200 PLC(Profinet协议)组网。若更换所有机器人控制器或上位机系统,成本过高且停产周期长。 《解决方案》 工程师选择稳联技术转换网关…...
【HTML-5】HTML 实体:完整指南与最佳实践
1. 什么是 HTML 实体? HTML 实体是一种在 HTML 文档中表示特殊字符的方法,这些字符如果直接使用可能会与 HTML 标记混淆,或者无法通过键盘直接输入。实体由 & 符号开始,以 ; 分号结束。 <p>这是一个小于符号的实体&am…...
MySQL 索引详解与原理分析
MySQL 索引详解与原理分析 一、什么是索引? 索引(Index)是数据库表中一列或多列的值进行排序的一种数据结构,可以加快数据的检索速度。索引类似于书本的目录,通过目录可以快速定位到想要的内容,而不用全书…...
游戏引擎学习第303天:尝试分开对Y轴和Z轴进行排序
成为我们自己的代码精灵α 所以现在应该可以正常使用了。不过,这两周我们没办法继续处理代码里的问题,而之前留在代码里的那个问题依然存在,没有人神奇地帮我们修复,这让人挺无奈的。其实我们都希望有个神奇的“代码仙子”&#…...
javaweb-html
1.交互流程: 浏览器向服务器发送http请求,服务器对浏览器进行回应,并发送字符串,浏览器能对这些字符串(html代码)进行解释; 三大web语言:(1)html:…...
3.2.3
# 导入必要的库 import onnx import numpy as np from PIL import Image import onnxruntime as ort # 定义预处理函数,用于将图片转换为模型所需的输入格式 def preprocess(image_path): input_shape (1, 1, 64, 64) # 模型输入期望的形状,这里…...
Redis 8.0 GA,重回开源
在数字化浪潮的推动下,实时数据处理已成为现代应用的核心需求。作为全球广泛使用的 NoSQL 数据库,Redis 8.0 不仅通过 30 余项性能改进重新定义了实时数据处理的速度极限,更通过整合社区资源与开放授权模式,进一步巩固其在开源生态…...
心联网(社群经济)视角下开源AI智能名片、链动2+1模式与S2B2C商城小程序源码的协同创新研究
摘要:在心联网(社群经济)理论框架下,本文构建了开源AI智能名片、链动21模式与S2B2C商城小程序源码的技术协同体系,提出"情感连接-利益驱动-生态裂变"三维创新模型。通过实证分析与案例研究,验证该…...
【图像大模型】Hunyuan-DiT:腾讯多模态扩散Transformer的架构创新与工程实践
Hunyuan-DiT:腾讯多模态扩散Transformer的架构创新与工程实践 一、架构设计与技术创新1.1 核心架构解析1.2 关键技术突破1.2.1 多粒度训练策略1.2.2 动态路由MoE 二、系统架构解析2.1 完整生成流程2.2 性能对比 三、实战部署指南3.1 环境配置3.2 基础推理代码3.3 高…...
TASK04【Datawhale 组队学习】构建RAG应用
目录 将LLM接入LangChain构建检索问答链运行成功图遇到的问题 langchain可以便捷地调用大模型,并将其结合在以langchain为基础框架搭建的个人应用中。 将LLM接入LangChain from langchain_openai import ChatOpenAI实例化一个 ChatOpenAI 类,实例化时传入超参数来…...
YOLOv11旋转目标检测Hrsc2016
from ultralytics import YOLOmodel YOLO(/kaggle/input/model-v11-obb/yolo11n-obb.pt) model.train(data/kaggle/input/hrscobb4/HRSC-YOLO/data.yaml, epochs30) 1使用的训练平台为Kaggle 数据集:HRSC的三种形式 一级分类:船 有水平框版本&…...
Debian重装系统后
安装配置java环境 手动安装 下载openJDK:openJDK 设置替代项 sudo update-alternatives --install /usr/bin/java java /opt/jdk-21.0.2/bin/java 1 sudo update-alternatives --install /usr/bin/javac javac /opt/jdk-21.0.2/bin/javac 1 sudo update-alternat…...
野火鲁班猫(arrch64架构debian)从零实现用MobileFaceNet算法进行实时人脸识别(四)安装RKNN Toolkit Lite2
RKNN Toolkit Lite2 是瑞芯微专为RK系列芯片开发的NPU加速推理API。若不使用该工具,计算任务将仅依赖CPU处理,无法充分发挥芯片高达6TOPS的NPU算力优势。 按照官方文档先拉一下官方代码库,然后通过whl文件安装,因为我是python3.1…...
ElasticSearch导读
ElasticSearch 简介:ElasticSearch简称ES是一个开源的分布式搜素和数据分析引擎。是使用Java开发并且是当前最流行的开源的企业级搜索引擎,能够达到近实时搜索,它专门设计用于处理大规模的文本数据和实现高性能的全文搜索。它基于 Apache Luc…...
【STM32】自定义打印函数
STM32 学习笔记:理解 my_printf 与 va_start 在嵌入式开发中,我们常常需要实现类似标准 C 中 printf 的调试输出功能。为了支持“任意数量参数”的传递,C 语言提供了对 可变参数(variable arguments) 的支持。其中&am…...
基于 STM32 的 PC ARGB 风扇控制器设计与实现
一、项目背景 最近购入的 X99 系列主板,没有风扇的 ARGB 彩灯接口,并且在 Ubuntu 系统上 4pin 的风扇接口调速也是非常的难用,sensor 扫描不到传感器,于是决定手搓一个风扇控制器,来实现转速自定义和彩灯控制。 我控制…...
【软件设计师】计算机网络考点整理
以下是软件设计师考试中 计算机网络 的核心考点总结,帮助您高效备考: 一、网络体系结构与协议 OSI七层模型 & TCP/IP四层模型 各层功能(物理层-数据链路层-网络层-传输层-会话层-表示层-应用层)对应协…...
在 Qt 中实现动态切换主题(明亮和暗黑)
目录 步骤 1:准备主题文件步骤 2:将 QSS 文件加入资源系统步骤 3:创建主题管理类步骤 4:在应用程序中切换主题步骤 5:处理自定义控件和动态资源步骤 6:保存用户主题偏好步骤 7:处理图片资源切换…...
JavaEE 初阶文件操作与 IO 详解
一、文件操作基础:File 类 作用:操作文件或目录(创建、删除、获取信息)。 核心方法: exists():文件是否存在createNewFile():创建新文件mkdir():创建目录delete():删除…...
基于Qt的app开发第十天
写在前面 笔者昨天刚刚收到课设的截止时间要求,距离写这篇博客的时间还有一个月,我从申请自命题课设到今天已经27天了,先用两周时间学Qt,然后就开始做这个项目,现在已经快把基础功能全部实现了。 目前的打算是完成基础…...
QT中信号和事件的区别
好的,简单来说,Qt 的信号(Signal)和事件(Event)虽然都用于组件间通信和交互,但它们的机制和用途是不同的: 1. 信号(Signal) 概念:信号是对象发出的…...
AUTOSAR图解==>AUTOSAR_SRS_PWMDriver
AUTOSAR PWM驱动模块详解 基于AUTOSAR 4.4.0 SRS 规范文档 目录 1. PWM驱动概述2. PWM驱动架构3. PWM驱动配置4. PWM驱动API接口5. PWM驱动状态管理6. PWM驱动典型应用场景7. 总结1. PWM驱动概述 AUTOSAR PWM驱动是AUTOSAR基础软件中的一个重要组件,属于微控制器抽象层(MCAL)…...
SQL数据处理流程
一、数据处理 1、数据清洗 对空值处理:删除/填充为0 -- 用 0 填充 NULL SELECT COALESCE(sales, 0) AS sales FROM orders;-- 删除含 NULL 的记录 DELETE FROM users WHERE email IS NULL; COALESCE(bonus, 0) 相当于IF(bonus IS NULL, 0, bonus),当…...
Mysql差异备份与恢复
1.练习差异备份 差异备份:备份完全备份后,新产生的数据。 在192.168.88.50主机完成差异备份 步骤一:练习差异备份//周一完全备份 mysql> select * from test.one; --------------------- | name | age | sex | ------------------…...
目标检测 Lite-DETR(2023)详细解读
文章目录 迭代高级特征跨尺度融合高效的低层次特征跨尺度融合KDA:Key-aware Deformable Attention 论文翻译: CVPR 2023 | Lite DETR:计算量减少60%!高效交错多尺度编码器-CSDN博客 DINO团队的 (Lightweight Transfo…...
【Java学习方法】类变量
类变量 引出关键字:static 又名:静态变量,静态字段,类字段(字段又名属性,成员方法),类属性 是什么? 供该(同一个类)的所有对象共享的变量 &am…...
智能手表为什么需要做 EN 18031 认证?
EN 18031 是欧盟针对电磁兼容性(EMC)中人体暴露于电磁场的安全要求制定的标准,全称为 《Electromagnetic compatibility (EMC) - Standards for protective measures against electromagnetic fields with regard to human exposure》&#x…...
什么是 Agent 的 Message
Messages 2.4.1 概述 什么是 Agent 的 Message? 当你和朋友聊天、在网上搜索信息或是对手机语音助手说“帮我查一下天气”时,其实你都在向某个“代理者(Agent)”发送一条“信息(Message)”。这里的“代理者”既可以是一个人,也可以是一个能执…...
如何用JAVA手写一个Tomcat
一、初步理解Tomcat Tomcat是什么? Tomcat 是一个开源的 轻量级 Java Web 应用服务器,核心功能是 运行 Servlet/JSP。 Tomcat的核心功能? Servlet 容器:负责加载、实例化、调用和销毁 Servlet。 HTTP 服务器:监听端口…...
WebRTC与RTSP|RTMP的技术对比:低延迟与稳定性如何决定音视频直播的未来
引言 音视频直播技术已经深刻影响了我们的生活方式,尤其是在教育、医疗、安防、娱乐等行业中,音视频技术成为了行业发展的重要推动力。近年来,WebRTC作为一种开源的实时通信技术,成为了音视频领域的重要选择,它使得浏览…...
COMPUTEX 2025 | 广和通创新解决方案共筑AI交互新纪元
5月20日至23日,广和通携多领域创新解决方案亮相2025年台北国际电脑展(COMPUTEX 2025),台北南港展览馆#K0727a展位。此次展会,广和通围绕“Advancing Connectivity Intelligent Future”为主题,设置四大核心…...
COMPUTEX 2025 | 广和通率先发布基于MediaTek T930 平台的5G模组FG390
5月19日,全球领先的无线通信模组和AI解决方案提供商广和通率先发布基于MediaTek T930平台的5G模组FG390系列。FG390系列模组为以5G固定无线接入(Fixed Wireless Access,FWA)为代表的MBB终端产品而设计,将在CPE…...
Power Integrations 汽车电源管理方案:为汽车应用增加系统价值
在新能源汽车产业蓬勃发展的当下,高效的电源管理方案成为提升汽车性能与可靠性的关键。近期,Power Integrations 举办线上交流会,介绍了基于其 1700V InnoSwitch3-AQ 反激式开关 IC 的五款全新参考设计,旨在为 800V 纯电动汽车提供…...
汽车转向系统行业2025数据分析报告
汽车转向系统市场概况 2024年全球汽车转向系统市场规模约为2769.4亿元,预计到2031年将增长至3296.3亿元,年均复合增长率(CAGR)为2.5%。这一增长主要得益于汽车行业的持续发展以及转向系统技术的不断进步。 市场驱动因素 汽车转…...
Tiny C 编译器中,如何实现宏展开和头文件包含的预处理逻辑?
首先,预处理的主要功能包括宏展开、头文件包含、条件编译等。用户的问题主要集中在宏展开和头文件包含,所以需要分别考虑这两个部分。 关于宏展开,首先需要解析#define指令。编译器在预处理阶段需要维护一个符号表,用来存储宏的名…...
谈谈 Kotlin 中的构造方法,有哪些注意事项?
在 Kotlin 中,构造方法分为主构造方法(Primary Constructor)和次构造方法(Secondary Constructor)。 1 主构造方法 主构造方法是类的核心构造方法,直接在类头声明,位于类名之后。 1.1 基本语…...
Elasticsearch常用命令
以下是 Elasticsearch 查看集群状态配置和索引完整操作流程的详细命令: 一、查看集群状态与配置 1. 集群健康状态 curl -X GET "localhost:9200/_cluster/health?pretty" 关键参数: level=indices:显示每个索引的健康状态 level=shards:显示每个分片的详细状…...
深入解读RTP协议:RFC 3550的技术分析与应用
引言 实时传输协议(RTP),作为一项重要的技术规范,在多媒体通信中扮演着至关重要的角色。尤其在音视频传输中,RTP为媒体流提供了端到端的传输机制,能够支持高质量、低延迟的音视频数据流传输。随着互联网及…...
使用 electron-builder 打包与发布 Electron 应用
基于 electron-vite-vue 项目结构 本文将基于 electron-vite-vue 脚手架,详细介绍如何使用 electron-builder 实现: ✅ 多平台打包(Windows / macOS / Linux)✅ 自动更新发布配置✅ 常用构建脚本与输出结构 📁 项目结…...