‌内网穿透技术‌总结

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

内网穿透和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 客户端以建立直接连接

注意事项

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

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

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

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

相关文章

数据稀缺条件下的时间序列微分:符号回归(Symbolic Regression)方法介绍与Python示例

时间序列概况在日常生活和专业研究中都很常见。简而言之,时间序列概况是一系列连续的数据点 y(0), y(1), …, y(t) ,其中时间 t 的点依赖于时间 t-1 的前一个点(或更早的时间点)。 在许多应用中,研究者致力于预测时间序列概况的未来行为。存在各种建模方法。这些模型通常基于过…

Unity让摄像机跟随物体的方法(不借助父子关系)

在Unity中,不使用子对象的方式让相机跟随物体移动,我们通过编写脚本来实现。下面放一个从工程中摘出来的的C#脚本示例,用于将相机绑定到一个Target对象上并跟随其移动: using UnityEngine; public class FollowCamera : MonoBeh…

DPDK基础入门(十):虚拟化

I/O虚拟化 全虚拟化:宿主机截获客户机对I/O设备的访问请求,然后通过软件模拟真实的硬件。这种方式对客户机而言非常透明,无需考虑底层硬件的情况,不需要修改操作系统。 半虚拟化:通过前端驱动/后端驱动模拟实现I/O虚拟…

【STM32】CAN总线基础入门

CAN总线基础入门 一、CAN简介二、主流通信协议对比三、CAN物理层1、CAN硬件电路2、CAN电平标准3、CAN收发器 – TJA1050(高速CAN)4、CAN物理层特性 四、帧格式1、CAN总线帧格式2、数据帧3、数据帧各部分用途简介4、数据帧的发展历…

大模型参数高效微调技术原理综述(八)-MAM Adapter、UniPELT

MAM Adapter 背景 近年来提出了多种参数高效的迁移学习方法,这些方法仅微调少量(额外)参数即可获得强大的性能。虽然有效,但人们对为什么有效的关键要素以及各种高效微调方法之间的联系知之甚少。 下图展示了不同的微调方法&am…

小米,B站网络安全岗位笔试题目+答案

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 《Java代码审…

坚持的力量--完成向CSDN迁移500篇技术文章阶段小记-以此自勉

前言:本文为迁移前的博客中的文章《坚持的力量-写给第1000篇文章笔记》发表于 publish:May 14, 2021 -Friday,作为原个人博客中累计写满1000篇文章的总结和鼓励。因在向CSDN迁移文章的过程中进行了一些文章合并等调整,总文数大量下降&#xf…

ACM模式下算法题输入输出攻略【C++】

文章目录 [TOC] 1. 核心代码模式与ACM模式1.1 ACM模式介绍1.2 注意事项 2. C常用的输入输出方法2.1 输入2.1.1 cin注意事项2.1.2 getline()注意事项2.1.3 getchar()注意事项 2.2 输出 3. 案例3.1 一维数组输入3.1.1 固定长度的一维数组3.1.2 不固定长度的一维数组 3.2 二维数组…

使用ddns-go实现自动配置IPv6的DDNS

正文共:888 字 17 图,预估阅读时间:1 分钟 前面说到通过PPPoE拨号获取到的IPv6地址没有发生变化(企业路由器配置IPv6家用宽带的PPPoE拨号示例),结果说完就打脸了。中间家里停了一次电,路由器重新…

Transformer模型详细步骤

Transformer模型是nlp任务中不能绕开的学习任务,我将从数据开始,每一步骤都列举出来,然后对应重点的代码进行讲解 ------------------------------------------------------------------------------------------------------------- Trans…

物品识别——基于python语言

目录 1.物品识别 2.模型介绍 3.文件框架 4.代码示例 4.1 camera.py 4.2 interaction.py 4.3 object_detection.py 4.4 main.py 4.5 运行结果 5.总结 1.物品识别 该项目使用Python,OpenCV进行图像捕捉,进行物品识别。我们将使用YOLO&#xff08…

re题(23)BUUFCTF-[FlareOn4]login

BUUCTF在线评测 (buuoj.cn) 下载后打开看到是一个txt和一个html 分别打开看看,txt是提示,html应该就是要破解的网页 打开网页,查看源代码 找到程序,变灰的部分是关键,是指如果是前13个字母就加13,如果是…

小程序开发设计-第一个小程序:注册小程序开发账号②

上一篇文章导航: 小程序开发设计-小程序简介①-CSDN博客https://blog.csdn.net/qq_60872637/article/details/142217803?sharetypeblogdetail&sharerId142217803&sharereferPC&sharesourceqq_60872637&spm1011.2480.3001.8118 须知:不…

C++设计模式——Prototype Pattern原型模式

一,原型模式的定义 原型模式是一种创建型设计模式,它允许通过克隆已有对象来创建新对象,从而无需调用显式的实例化过程。 原型模式的设计,使得它可以创建一个与原型对象相同或类似的新对象,同时又可以减少对象实例化…

Rust Windows下编译 静态链接VCRuntime140.dll

Rust 编译出来的exe默认动态链接VC运行库,分发电脑上需要安装有Microsoft Visual C Redistributable for Visual Studio 2015运行库。 编译时能静态链接进去,就省去客户端未安装运行库的问题。方法如下: 只需在当前根目录下新建.cargo\config.toml&#…

【可视化大屏系列】数据列表自动滚动效果

要实现列表的自动滚动效果,这里提供两种解决方案: 1.vue插件 官方文档:链接: vue-seamless-scroll (1)安装依赖 npm install vue-seamless-scroll --save(2)全局注册(main.js中&a…

【CTF Web】BUUCTF BUU UPLOAD COURSE 1 Writeup(文件上传+PHP+文件包含漏洞)

BUU UPLOAD COURSE 1 1 上课用~ 点击启动靶机。 解法 疑似存在文件包含漏洞。 http://15a5666e-1796-4f76-b892-0b69cf97df8e.node5.buuoj.cn:81/index.php?fileupload.php查看网页源代码。判断是后端检查。 <!DOCTYPE html> <html lang"zh-cn"> &…

多目标优化算法求解LSMOP(Large-Scale Multi-Objective Optimization Problem)测试集,MATLAB代码

LSMOP&#xff08;Large-Scale Multi-Objective Optimization Problem&#xff09;测试集是用于评估大规模多目标优化算法性能的一组标准测试问题。这些测试问题通常具有大量的决策变量和目标函数&#xff0c;旨在模拟现实世界中的复杂优化问题。 LSMOP测试集包含多个子问题&am…

element-plus的面包屑组件el-breadcrumb

面包屑组件主要用来显示当页面路径&#xff0c;以及快速返回之前的页面。 涉及2个组件 el-breadcrumb 和el-breadcrumb-item, el-breadcrumb的spearator指定item的分隔符 el-breadcrumb-item的to和replace属性和vue-router的一致&#xff0c;需要结合vue_router一起使用 用法…

通过python提取PDF文件指定页的图片

整体思路 要从 PDF 文件中提取指定页和指定位置的图片&#xff0c;可以分几个步骤来实现&#xff1a; 1.1 准备所需工具与库 在 Python 中处理 PDF 和图像时&#xff0c;需要使用几个库&#xff1a; PyMuPDF (fitz)&#xff1a;用于读取和处理 PDF 文件&#xff0c;可以精确…