‌内网穿透技术‌总结

内网穿透是一种网络技术,通过它可以使外部网络用户访问内部网络中的设备和服务。一般情况下,内网是无法直接访问的,因为它位于一个封闭的局域网中,无法从外部访问。而通过内网穿透,可以将内部网络中的设备和服务暴露在外部网络上,从而实现远程访问和管理。本文将详细介绍几种常见的内网穿透方式。

内网穿透和NAT

为了理解内网穿透,首先需要了解一些相关概念。

在这里插入图片描述

路由器默认情况下是使用 NAT(Network Address Translation,网络地址转换)来实现内网访问外网的。当内网中的设备(如电脑、手机等)需要访问外部网络时,路由器会将内网设备的私有 IP 地址转换为路由器的公网 IP 地址,并分配一个不同的端口号,同时记录下转换关系。例如,当内网中的一台电脑(私有 IP 地址为 192.168.1.3:56789)向外部服务器发送请求时,路由器会把源 IP 地址和端口 转换为路由器的公网 IP 地址(187.25.x.x:12345),外部服务器看到的请求源 IP 就是 187.25.x.x。当外部网络有数据返回时,路由器根据之前记录的转换关系,将目标 IP 地址从公网 IP 转换回对应的内网设备的私有 IP 地址,从而实现通信。

通过 NAT,多个内网设备可以共享一个公网 IP 地址与外部网络进行通信,有效地解决了 IPv4 地址资源不足的问题。但是同时,外部网络看到的是路由器的公网 IP 和特定的端口号,而不知道具体是哪个内网设备在进行通信,也就不能直接访问内网设备。对于外部网络发起的访问请求,路由器通常也会根据特定的规则(如:访问控制列表ACL)进行过滤和转发,以保护内网设备的安全。当内网中的设备需要对外提供服务(如搭建服务器)或者需要与外部特定设备进行通信时,由于 NAT 的存在,外部设备无法直接找到内网设备。这就产生了对内网穿透技术的需求。内网穿透技术的目的就是打破 NAT 的限制,实现外部网络与内网设备的直接通信。

应用场景

内网穿透技术在多种场景中得到广泛应用。例如,当用户需要随时随地远程访问家中的电脑、NAS(网络附加存储)设备或监控摄像头;或者在公司内部,需要从外网安全地访问公司内部的服务器、办公系统等。

  • 远程办公:员工可以通过内网穿透技术访问公司内部的办公系统、文件服务器等资源,实现远程办公。
  • 智能家居:智能家居设备通常处于家庭内网中,通过内网穿透技术,用户可以在外部网络中远程控制这些设备。
  • 游戏联机:玩家可以通过内网穿透技术建立游戏服务器,与其他玩家进行联机游戏。
  • 视频监控:将内网中的监控摄像头的视频流通过内网穿透技术传输到外部网络,实现远程监控。
  • 开发调试:开发人员可以通过内网穿透技术将本地开发环境中的服务器暴露到公网,方便进行测试和调试。

常见实现方式

内网穿透主要通过以下几种方式实现:

反向代理

反向代理位于互联网和网络服务器之间,他拦截来自客户端的请求,并代表客户端与网络服务器进行通信。如常见的如Nginx。

通过在具有公网 IP 的服务器上搭建反向代理服务,将外部网络的请求转发到内网服务器上。反向代理服务器充当了中间人的角色,隐藏了内网服务器的真实结构,同时也可以实现负载均衡和安全防护等功能。

端口映射

在路由器或防火墙上设置端口映射,将内网设备的特定端口映射到公网 IP 地址的某个端口上,使得外部设备可以通过公网 IP 和映射后的端口访问内网设备。

一般来说,三大运营商的家用带宽都是动态的公网ip,每隔一两天会变化一次,所以要通过DDNS来实施修改保定的ip,推荐DDNS-go:案例:
1,路由器配置DDNS,实现域名和动态IP地址绑定
2,路由器配置端口映射,实现局域网内请求转发
在这里插入图片描述

VPN(虚拟专用网络)

通过建立虚拟隧道,将不同内网中的设备连接到同一个虚拟网络中,实现内网之间的通信。

同时,利用 VPN 技术可以建立一条安全的隧道,将内部网络与外部网络连接起来。外部用户通过连接到 VPN 服务器,就仿佛处于内部网络中,能够访问内部网络的资源。VPN 不仅提供了远程访问的功能,还能保证数据传输的安全性,通常用于企业内部的远程办公等场景。

P2P(点对点)技术

利用 P2P 网络的特性,让内网中的设备直接与外部设备建立连接,无需经过中间服务器。这种方式适用于一些对实时性要求较高的应用,如在线游戏、视频会议等。

(1)UDP 打洞技术:常见的实现 P2P 的方式之一。UDP 打洞技术通过中间服务器的协助,在各自的 NAT 网关上建立相关表项,使 P2P 连接的双方发送的报文能够直接穿透对方的 NAT 网关,从而实现双方直接互连。具体过程为:客户端 A 向集中服务器发送请求,以建立与客户端 B 的 UDP 连接;集中服务器将 B 的外网和内网地址二元组发给 A,同时也将 A 的相关信息发给 B;A 和 B 收到对方信息后,开始向对方的外网和内网地址二元组发送 UDP 数据包,并自动锁定第一个给出响应的地址二元组,从而打开“洞”,实现直接通信。但需注意,UDP 转换协议提供的“洞”并非绝对可靠,NAT 设备内部的 UDP 转换空闲状态计时器可能会关闭一段时间内没有数据通信的“洞”。为避免此问题,可在穿越 NAT 后设定一个穿越有效期。

(2)TCP 打洞技术:基于 TCP 的 P2P 应用相对较少,但在某些情况下也有打洞需求。TCP 连接的建立依赖三次握手交互,NAT 网关处理 TCP 连接时开销较大。不过,TCP 协议完备的状态机机制使其能更精确地获取某个 session 的生命期。一种新的代理类型 xtcp 可用于解决此问题,例如采用搭建 frp 服务器的方式,在传输数据的两端部署 frp 客户端以建立直接连接

注意事项

  • 安全性问题:内网穿透可能会带来一定的安全风险,如外部攻击、数据泄露等。因此,在使用内网穿透技术时,需要采取相应的安全措施,如加密通信、访问控制等。
  • 网络稳定性:内网穿透的效果可能受到网络环境的影响,如网络延迟、带宽限制等。在选择内网穿透方式时,需要考虑网络稳定性因素。
  • 法律法规:在使用内网穿透技术时,需要遵守相关的法律法规,不得用于非法目的。

内网穿透技术是一种非常实用的网络技术,可以帮助用户在不同内网环境中实现设备之间的通信。在使用内网穿透技术时,需要根据实际需求选择合适的方式,并注意安全和合法性问题。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

底盘四轮转向运动学解析(含代码)

目录 写在前面的话四轮转向运动学解析四轮转向理论图解robot_control.py 完整代码关键参数完整代码 公式解析(根据代码)反相--模式1详细图解 正相--模式2轴心--模式3 写在前面的话 网上找了很多资料,对于四轮转向运动学描述的很少&#xff0…

爬虫过程 | 蜘蛛程序爬取数据流程(初学者适用)

蜘蛛程序(也称网络爬虫,是搜索引擎的重要组成部分) 主要功能:遍历互联网,抓取网站信息并建立索引,便于用户在搜索引擎中检索到最新的网页内容工作原理:从初始网站页面的URL开始,发送…

最适配达梦、人大金仓的sql工具是什么?

SQLynx是一款功能强大的数据库管理工具,它不仅支持Oracle、MySQL等国际主流数据库,还很好地支持了武汉达梦、人大金仓等国产数据库。这款工具具有以下几个特点: 1.广泛支持:SQLynx支持多种数据库系统,包括PostgreSQL、…

MySQL学习笔记(持续更新中)

1、Mysql概述 1.1 数据库相关概念 三个概念:数据库、数据库管理系统、SQL 名称全称简称数据库存储数据的仓库,数据是有组织的进行存储DataBase(DB)数据库管理系统操纵和管理数据库的大型软件DataBase Mangement System&#xf…

电子看板实时监控数据可视化助力工厂精细化管理

在当今竞争激烈的制造业领域,工厂的精细化管理成为提高竞争力的关键。而电子看板实时监控数据可视化作为一种先进的管理工具,正为工厂的精细化管理带来巨大的助力。 一、工厂精细化管理的挑战 随着市场需求的不断变化和客户对产品质量要求的日益提高&am…

Qt 模型视图(三):视图类QAbstractItemView

文章目录 Qt 模型视图(三):视图类QAbstractItemView1.基本概念1.1.使用现有视图1.2.使用模型1.3.使用模型的多个视图1.4.在视图之间共享选择 Qt 模型视图(三):视图类QAbstractItemView ​ 模型/视图结构是一种将数据存储和界面展示分离的编程方法。模型存储数据,视…

Ubuntu22.04关闭631端口的方法

何为631端口? 631端口主要用于访问和控制网络打印服务,是linux下CUPS(Common UNIX Printing System,通用UNIX打印系统)服务的端口。Linux中的CUPS(Common UNIX Printing System,通用UNIX打印系…

VisualStudio的“应用代码更改“按钮功能

无意发现这个按钮,因为开发这么多年也没专门尝试这个按钮,于是好奇它的功能。 光标放在按钮上面提示了“应用代码更改”,于是猜想应该是在调试不断开的情况下支持热应用更改。 经过验证,功能确实如同猜想的一样,具体验…

【Elasticsearch系列廿一】ES7 SQL 新特性

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

基于c++实现的简易shell

代码逻辑 核心思想 解析命令行,拆解命令及其选项创建子进程,在子进程中执行命令如果是前台执行命令,则父进程就阻塞等待子进程中命令执行结束后回收子进程的资源如果是后台执行命令,则父进程不进行阻塞等待,可继续向下…

【ArcGIS微课1000例】0123:数据库中要素类批量转为shapefile

除了ArcGIS之外的其他GIS平台,想要打开ArcGIS数据库,可能无法直接打开,为了便于使用shp,建议直接将数据库中要素类批量转为shapefile。 文章目录 一、连接至数据库二、要素批量转shp一、连接至数据库 打开ArcMap,或者打开ArcCatalog,找到数据库连接,如下图: 数据库为个…

Laravel邮件发送:从配置到发邮件的指南!

Laravel邮件发送功能如何实现?怎么使用Laravel发信? Laravel作为一款流行的PHP框架,提供了强大且易用的邮件发送功能。AokSend将详细介绍如何从配置到实际发送邮件的全过程,帮助你快速掌握Laravel邮件发送的技巧。 Laravel邮件发…

数据中台!企业的必备还是可有可无?(附数据中台构建完整脑图)

数据中台!企业的必备还是可有可无?(附数据中台构建完整脑图) 前言数据中台 前言 在这个数据爆炸的时代,数据已经成为了企业最宝贵的资产之一。然而,如何有效地管理和利用这些数据,却是许多企业…

Linux驱动开发 ——架构体系

只读存储器(ROM) 1.作用 这是一种非易失性存储器,用于永久存储数据和程序。与随机存取存储器(RAM)不同,ROM中的数据在断电后不会丢失,通常用于存储固件和系统启动程序。它的内容在制造时或通过…

Blender软件三大渲染器Eevee、Cycles、Workbench对比解析

Blender 是一款强大的开源3D制作平台,提供了从建模、雕刻、动画到渲染、后期制作的一整套工具,广泛应用于电影、游戏、建筑、艺术等领域。 渲染101云渲染云渲6666 相比于其他平台,如 Autodesk Maya、3ds Max 或 Cinema 4D,Blende…

Error when custom data is added to Azure OpenAI Service Deployment

题意:在向 Azure OpenAI 服务部署添加自定义数据时出现错误。 问题背景: I receive the following error when adding my custom data which is a .txt file (it doesnt matter whether I add it via Azure Cognitive Search, Azure Blob Storage, or F…

药用植物的空间多组学:从生物合成途径到工业应用-文献精读51

Spatial multi-omics in medicinal plants: from biosynthesis pathways to industrial applications 药用植物的空间多组学:从生物合成途径到工业应用 摘要 随着分子测序和成像技术的快速发展,药用植物的多组学研究进入了单细胞时代。我们讨论了空间多…

振弦式渗压计常见故障有哪些?怎么解决?

振弦式渗压计是一种用于测量结构物或土体内部渗透水压力的仪器,广泛应用于土木工程、水利工程及环境监测领域。在使用过程中,可能会遇到一些常见的故障,以下是一些故障及其解决方法: 1. 读数不稳定: - 确保渗压计安装在…

React18入门教程

React介绍 React由Meta公司开发,是一个用于 构建Web和原生交互界面的库 React的优势 相较于传统基于DOM开发的优势 组件化的开发方式 不错的性能 相较于其它前端框架的优势 丰富的生态 跨平台支持 React的市场情况 全球最流行,大厂必备 开发环境…

2024年数学建模比赛题目及解题代码

目录 一、引言 1. 1竞赛背景介绍 1.1.1数学建模竞赛概述 1.1.2生产过程决策问题在竞赛中的重要性 1.2 解题前准备 1.2.2 工具与资源准备 1.2.3 心态调整与策略规划 二、问题理解与分析 三、模型构建与求解 3.1 模型选择与设计 3.1.1 根据问题特性选择合适的数学模型类…