‌内网穿透技术‌总结

news2024/12/22 23:11:15

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

内网穿透和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.coloradmin.cn/o/2140175.html

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

相关文章

2024年TCGA基因表达数据下载(最新版)

文章目录 前言一、如何使用TCGA数据库获取公共数据?二、使用步骤1.点击Cohort Builder2.数据筛选3. Repository4.数据下载4.1 继续选择筛选条件4.2 添加cart并进入4.3 下载 总结 前言 TCGA 全称 The Cancer Genome Atlas ,即癌症基因组图谱。它是一个大型的癌症研…

【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧

文章目录 Python NumPy学习指南前言第六部分:NumPy在科学计算中的应用1. 数值积分使用梯形规则进行数值积分使用Simpson规则进行数值积分 2. 求解微分方程通过Euler方法求解一阶常微分方程使用scipy.integrate.solve_ivp求解常微分方程 3. 随机过程模拟模拟布朗运动…

Linux下进程间的通信--共享内存

共享内存概述: 共享内存是进程间通信的一种方式,它允许两个或多个进程共享一个给定的存储区。共享内存是最快的一种IPC形式,因为它允许进程直接对内存进行读写操作,而不需要数据在进程之间复制。 共享内存是进程间通信&#xff…

【C++】【网络】【Linux系统编程】单例模式,加锁封装TCP/IP协议套接字

目录 引言 获取套接字 绑定套接字 表明允许监听 单例模式设计 完整代码示例 个人主页:东洛的克莱斯韦克-CSDN博客 引言 有关套接字编程的细节和更多的系统调用课参考《UNIX环境高级编程》一书,可以在如下网站搜索电子版,该书在第16章详…

【C++】缺省(默认)参数

🦄个人主页:小米里的大麦-CSDN博客 🎏所属专栏:C_小米里的大麦的博客-CSDN博客 🎁代码托管:C: 探索C编程精髓,打造高效代码仓库 (gitee.com) ⚙️操作环境:Visual Studio 2022 目录 一、概念 二、 全缺省(Fully Defa…

多态的相关知识

一.多态的概念 1.多态:多态是⼀个继承关系的下的类对象,去调⽤同⼀函数,产⽣了不同的⾏为。 2.多态分为编译时多态(静态多态)和运⾏时多态(动态多态)。 1>编译时多态(静态多态)主要就是函数重载和函数模板,他们传不同类型的…

Powerpaint介绍及实现局部重绘效果测试[comfyui]

🍘背景 powerpaint,是一个高质量多功能的图像修补模型,可以同时支持插入物体、移除物体、图像扩展、形状可控的物体生成。 这个模型也是国产的,原作者是清华大学深圳国际研究生院,清华大学 ,上海人工智能…

JAVA:非对称加密技术的详细指南

请关注微信公众号:拾荒的小海螺 博客地址:http://lsk-ww.cn/ 1、简述 非对称加密是一种加密技术,使用一对密钥进行数据加密和解密。这两个密钥分别是公开密钥(public key)和私有密钥(private key&#xf…

【算法】栈与模拟

【ps】本篇有 5 道 leetcode OJ。 目录 一、算法简介 二、相关例题 1)删除字符串中的所有相邻重复项 .1- 题目解析 .2- 代码编写 2)比较含退格的字符串 .1- 题目解析 .2- 代码编写 3)基本计算器 II .1- 题目解析 .2- 代码编写 4&…

进程状态、进程创建和进程分类

文章目录 进程进程常见的状态进程调度进程状态变化关系 进程标识示例--进程标识的使用以及简介 进程创建fork函数vfork函数示例--使用fork函数创建子进程,并了解进程之间的关系 创建进程时发生的变化虚拟内存空间的变化示例--验证fork函数创建进程时的操作 对文件IO…

【例题】lanqiao3226 宝藏排序Ⅱ

样例输入 5 1 5 9 3 7样例输出 1 3 5 7 9解题思路 这里的n≤10^5,说明O(n ^2)的算法行不通。 基于比较的高效算法和基于数值划分的高效算法全部参考这篇文章 代码 最简单的自带排序 nint(input()) alist(map(int,input().split()))a.sort() print( .join(map…

量化交易backtrader实践(二)_基础加强篇(1)_数据列表准备与主要实践内容

上一篇回顾 上一篇是数据获取篇,在上一篇里,我们初步接触了backtrader的回测逻辑,重点放在了回测的数据获取的问题上,确保了我们在用合适且有效的正规数据在做回测,我们的目的是要通过backtrader深入讨论量化交易的内…

【Linux进程控制】进程等待

目录 进程等待 进程等待是什么? 为什么? 怎么办? wait方法 获取子进程status 多进程的等待问题 waitpid方法 什么是阻塞等待?什么是非阻塞等待? wait/waitpid获取子进程信息原理 进程等待 进程等待是什么&am…

【AI学习】陶哲轩在 2024 年第 65 届国际数学奥林匹克(IMO)的演讲:AI 与数学

陶哲轩在 2024 年第 65 届国际数学奥林匹克关于AI 和数学的演讲,很有意思。陶哲轩的讲话语速太快了,足见其聪明! AI用于数学的一些方面: 陶哲轩介绍到刚刚被数学家接受并开始普及的方法:形式化证明辅助工具。 形式化…

API:连接数字世界的隐形纽带

在这个智能手机和应用程序无处不在的时代,你可能听说过API这个术语,但你知道它究竟是什么吗?API,全称为应用程序编程接口(Application Programming Interface),是一种让不同的软件和服务之间能够…

MySQL基础篇(黑马程序员2022-01-18)

1 MySQL数据库概述 1.1 MySQL数据库的下载,安装,启动停止 1.2 数据模型 (1)关系型数据库(RDBMS) 概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库。 特点: A. 使用表存储数据,格式统一,便于维护。…

C++11第五弹:线程库 | 互斥锁 | 原子操作

🌈个人主页: 南桥几晴秋 🌈C专栏: 南桥谈C 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据…

蓝牙耳机是入耳式的好还是开放式的好?2024开放式耳机推荐

个人推荐入开放式耳机,戴起来更舒服,主要有以下几方面原因: 减少对耳部的压迫: 不入耳设计:开放式耳机通常不需要插入耳道,避免了对耳道的直接压迫。入耳式耳机的耳塞长时间塞在耳道内,会对耳…

Linux基础---07文件传输

Linux文件传输地图如下,先选取你所需的场景,若你是需要Linux和Linux之间传输文件就查看SCP工具即可。 一.下载网站文件 前提是有网: 检查网络是否畅通命令:ping www.baidu.com,若有持续的返回值就说明网络畅通。Ctr…