内网穿透方法汇总

news2024/11/15 3:33:35

内网穿透

1.ddns原理和使用条件

电信宽带:通过难过光猫拨号,得到的如果是私网的IP,可以通过10000号投诉,从而得到公网IP(浮动IP,每次拨号会分配一个IP,可以通过ddns实现通过域名绑定,每次拨号成功就会和动态的公网IP进行域名绑定)

移动宽带:通过难过光猫拨号,得到的只能是私网IP(10网段的唯一IP),投诉也不能得到公网IP,因为便宜。(不能使用ddns,只能通过软件来实现,类似聊天软件,登录的时候就是把公网IP和登录的转换端口发送到服务器,别人发消息就会根据nat找到主机)

ddns使用必须要拨号得到公网IP才行(路由器的拨号得到私网IP,路由器是不能看到对应的公网IP的,因此就不能使用ddns),因此想要简单的通过ddns(动态dns)功能使用openvpn建立vpn是不能实现的,openvpn的服务端必须要有公网的IP,固定的公网IP最好,不固定的动态IP可以通过ddns来实现动态解析。

ddns原理:ddns部署在路由器中,当路由器中的IP发生变化,及是通过设置号的账号和密码或者调用API去实时更新域名对应的新的IP,做到动态解析域名的效果。

image-20231009010533700

2.内网穿透的方法

  1. 拥有固定的公网IP,可以直接进行端口映射或者vpn进行内网穿透
  2. 拨号得到动态公网IP,通过ddns实现动态域名解析,需要注册ddns的服务商得到域名,然后在路由器或者光猫中设置ddns(具体在哪里设置要看光猫的模式和路由器的模式),并进行端口映射,访问域名添加端口就可以到达指定的内网。
  3. 拨号获得动态公网IP,通过ddns实现动态域名解析,需要注册ddns的服务商得到域名,然后在路由器或者光猫中设置ddns(具体在哪里设置要看光猫的模式和路由器的模式),通过部署openvpn服务器,通过openvpn客户端直接访问私网IP就可以直接到到达内网。**(原理是部署openvpn的时候,会在服务器生成证书和自己的IP或者ddns等,openvpn客户端需要根据服务器的证书和IP进行配置,连接openvpn的服务器的时候,验证证书,从而建立加密通道(虚拟的网桥),因为是通讯是加密的,第一次连接客户端的时候会记住转发的路径,后续的通讯都是队IP头加密的,因此每个节点看不到目的IP,然后按照预先定义的路径转发,就直达内网了,此时客户端会有一个虚拟的网卡,IP为openvpn服务器内网网段的IP,和openvnp服务器形成了专用的通道(类似专线),效率高,安全性高)**缺点是自己两边都要部署openvpn服务器才能使用,并且需要公网IP,可以使用第三方的openvpn,自己不需要构建服务器,但是使用的时候还是需要登录客户端,服务器建立两端的虚拟网卡,通过虚拟网桥把两端连在同一个虚拟局域网内。而且对于账号有2-3个连接(一个账号同事允许在2-3台设备登录)限制。
  4. 利用反向代理(lvs nginx haproxy)隐藏了服务器的IP,访问公网,实际数据包发往了私网。
  5. 利用专用的内网穿透软件:ZeroTier ngrok 花生壳等(基本原理的都是类似登录聊天软件一样,访问服务器,把自己的访问路径中的nat转换对应的公网IP+端口信息发到服务器,另一台设备根据公网IP+端口访问局域网设备。核心就是端口映射。)

因为没有公网IPv4,且基本的内网穿透效果不是很稳定,最终选择了IPv6的方法实现内网穿透

3.利用IPv6 实现内网穿透(严格来说是利用每个设备的公网IPv6访问)

运营商分配给家庭宽带的IP4是私网IP且是动态的,但是给的IPv6是公网的动态IP,因此可以直接通过ipv6实现直接访问内网

windows通过公网IPv6访问共享桌面。

1.被访问主机开启远程桌面

image-20231008213518667

2.获取自己的ipv6地址

直接调出终端输入ipconfig

这里会出现三个IPv6地址,
1. 第一个
这是一个全局单播IPv6地址,用于这个接口在外部网络的通信。它可以被全球其他主机访问,是这个接口的稳定地址。
2.第二个
这是一个临时IPv6地址,用于替代上面的全局地址在发起连接时使用,保护主机的隐私。它会定期随机生成,不稳定。
3. 第三个
这是一个链路本地地址,用于主机在本地链路范围内的通信。%5表示这是eth5接口上的地址。它只在本地有效,不能用于互联网通信。
总结一下:
- 全局地址:用于外部通信,稳定的地址。
- 临时地址:定期变更,保护隐私。
- 本地地址:仅本地链路内有效。 

IPv6地址的补充

IPv6 临时地址和全局地址作为动态地址,有以下主要区别:
1. 生命周期不同
- 临时地址的生命周期很短,通常每天或每周重生成。
- 全局动态地址的生命周期跟租期相关,可使用较长时间,如数月。
2. 使用场景不同
- 临时地址用于隐藏设备真实地址(因为生命周期短,频繁更换,从而隐藏全局地址)。
- 全局动态地址用于正常的网络通信。
3. 获取方式不同 
- 临时地址完全随机生成。
- 全局动态地址由服务器分配。
4. 可控性不同
- 临时地址不可控制,按策略自动生成。
- 全局动态地址可以通过续租或固定控制。
5. 可达性不同
- 临时地址不可直接寻址(利用全局地址找到目标主机,然后具体的通讯是根据系统生成的临时地址进行,这里的寻址指的是客户端选寻找全局IP进入互联网阶段)。
- 全局动态地址可被直接访问。

IPv6 通过临时地址实现IP地址隐藏的基本机制如下:
1. 设备会在其IPv6全局单播地址的基础上,随机生成多个临时地址。
2. 在发起外部连接时,源地址字段使用临时地址,而不是真实的全局地址。
3. 数据包在传输过程中,源地址会被设备自动替换回真实全局地址。
4. 对端收到数据包时,只会看到临时地址,而无法看到设备实际的全局地址。
5. 对端返回的数据包会发回到临时地址。
6. 设备收到返回的数据包时,再将目标地址从临时地址替换为全局地址。
7. 这样在整个过程中,对端只能看到临时地址,难以获知设备的实际全局地址。
8. 临时地址会定期更新,使得地址难以被追踪。

Pv6 地址隐藏的主要目的就是隐藏客户端的地址,以防止用户被追踪或定位。
而对于服务器来说,采取的隐藏方式则不同:
1. 客户端需要隐藏源地址,使用临时地址。
2. 服务器需要公开全局地址,保证可寻址。
3. 服务器不能使用临时地址,否则客户端无法主动连接。
4. 服务器通过反向代理等手段隐藏内部实际地址。
5. 对外只公开必要的全局地址前缀和入口地址。
所以,您的概括非常准确地总结了IPv6地址隐藏的主要方式:
- 客户端主要隐藏自己地址。
- 服务器主要通过反向代理等手段隐藏内部拓扑和实际地址。

3.此时可以通过IPv6访问局域网的主机(但是因为是动态的所以要配合ddns服务器进行动态解析)

直接通过ipv6地址(全局地址或者临时地址)连接远程桌面

image-20231008232830965

1.云解析DNS: 云解析DNS是一种在云计算环境下运行的DNS服务。它通常由云服务提供商提供,用户可以通过云服务提供商的控制面板或API动态地管理域名解析记录。云解析DNS服务通常用于负载均衡、高可用性和域名管理等需求,它不仅可以实现静态的域名解析,还可以实现动态的负载均衡和灵活的域名配置。

2.DDNS(Dynamic Domain Name System): DDNS是一种用于动态IP地址的DNS服务。它通常用于家庭网络或小型企业网络,因为这些网络通常使用的是动态IP地址(由ISP分配的IP地址可能会定期更改)。DDNS服务允许用户将一个动态的IP地址与一个固定的域名相关联,当用户的公共IP地址发生变化时,DDNS服务会自动更新DNS记录,确保域名始终映射到正确的IP地址。DDNS服务通常需要一个客户端软件或者网络设备来定期更新IP地址。

所以,虽然两者都涉及到动态地管理域名解析,但DDNS主要用于解决动态IP地址的问题,而云解析DNS则是一种在云计算环境下提供动态域名解析服务的服务类型。

在路由器中设置ddns,可以选择阿里云的云解析dns,因为云解析dns本身就是动态的dns可以直接使用,

####1.创建域名(实名创建,上传身份正,需要工信部备案)https://wanwang.aliyun.com/domain/1yuan?

image-20231008230931753

2.工作台–资源管理–对应的域名资源找到资源,并设置主机域名(次级域名)

image-20231008231029198

image-20231008231202957

3.获取aliyun的accesskey

image-20231008231343783

**注意:**刚新建的域名并不会立刻通过难过,等审核通过后域名才能正常访问。

4.在路由器的ddns中填写accesskey和secret,aliyu的服务器以及对应的域名。

image-20231008231819678

5.访问测试

image-20231008233423857

3.利用自己的虚拟机ipv6和域名绑定实现访问虚拟机服务器的网页资源

1.在aliyun的dns服务器添加web子域名和IPv6地址

注意:经测试,要想访问可用的ipv6地址,需要在虚拟机上安装网桥,使虚拟机的IP和宿主机的IP在同一局域网内(保证前缀和公网IP的前缀相同才行),如果采用个nat模式,即使把前缀和公网ipv6的相同也不能使用。另外ubuntu开启IPv6需要通过modprobe ipv6命令开启,并且添加的桥接网卡不会自动启动,需要通过ip link set eth1 up(启动桥接网卡,才能自动获得桥接地址)

2.在虚拟机中安装nginx,并配置号页面文件

这里下载淘宝的html静态文件,直接作为自己的index.html默认文件

3.直接访问测试

image-20231009005154561

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

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

相关文章

2.8 Flowmap的实现

一、Flowmap是什么 Valve 2010的GDC讲座,《求生之路2》中水的制作 http://alex.vlachos.com/graphics/Vlachos-SIGGRAPH10-WaterFlow.pdf Water (shader) - Valve Developer Community 1.Flowmap的本质 一张记录了2D向量信息的纹理,Flowmap上的颜色&…

uwsgi+gevent+nginx部署实现协程高并发

python 所有用到的库 alembic1.12.0 amqp5.1.1 aniso86019.0.1 APScheduler3.10.4 async-timeout4.0.3 billiard4.1.0 blinker1.6.2 celery5.3.4 certifi2023.7.22 cffi1.15.1 charset-normalizer3.2.0 click8.1.7 click-didyoumean0.3.0 click-plugins1.1.1 click-repl0.3.0 …

基于web的酒店客房管理系统

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 会员信息管理 客房信息管理 收藏客房管理 用户入住管理 客房清扫管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施…

数据结构———— 堆

(一)基础补充 满二叉树是每一层节点都放满的二叉树。 完全二叉树是只有最后一层节点右边不放满的二叉树。 满二叉树(Perfect Binary Tree) 如果二叉树中除了叶子结点,每个结点的度都为 2,则此二叉树称为满二叉树。另一种说法:一个深度为k(>=-1)且有2^(k+1) - 1个结…

拼多多商品链接获取拼多多商品详情数据(用 Python实现拼多多商品信息抓取)

在网页抓取方面,可以使用 Python、Java 等编程语言编写程序,通过模拟 HTTP 请求,获取拼多多网站上的商品页面。在数据提取方面,可以使用正则表达式、XPath 等方式从 HTML 代码中提取出有用的信息。值得注意的是,拼多多…

Bootstrap-初始

响应式布局: 一个网站可以兼容多个终端(PC、移动端) >框架使用的版本是根据公司的产品所面向的是什么样的客户来决定的!!! 官网:Bootstrap

iMovie for Mac:专业级的视频剪辑体验!

如果你是一位视频爱好者,那么你一定不能错过iMovie for Mac这款专业视频剪辑工具。它不仅拥有简单易用的界面,而且功能强大,可以让你轻松完成复杂的视频剪辑任务。 一、界面友好,上手容易 iMovie for Mac的界面设计简洁明了&…

深度解析locked勒索病毒,勒索病毒解密,数据恢复

locked勒索病毒曾经消失了一段时间,但是从今年6月份以来,这种类型的勒索病毒又“重出江湖”,被感染的服务器和企业越来越多,这让很多企业和安全运维人员都非常头疼。为了减少这种情况的发生,云天数据恢复中心将对locke…

为什么说,网络安全工程师是网安行业的天花板?

为什么说,网络安全工程师是网安行业的天花板? 最近看到网上有很多人在问诸如:“怎样成为网络信息安全工程师”等相关问题,甚至还有人说“网络安全工程师已经成为这个行业的天花板”,这可能与近几年网络安全事件频发&a…

阿里云 腾讯云 配置二级域名并解析指向非80端口操作指南

目标:主域名 imps.com 已完成配置,新增配置 kpi.imps.com 等二级域名并指向 8083 端口。 (此操作需要主域名已经通过备案3天后,最好指向的IP地址网站也通过了备案申请,否则会提示域名没有备案。) 操作流程…

C++标准模板(STL)- 类型支持 (数值极限,is_exact,has_infinity,has_quiet_NaN)

数值极限 定义于头文件 <limits> template< class T > class numeric_limits; numeric_limits 类模板提供查询各种算术类型属性的标准化方式&#xff08;例如 int 类型的最大可能值是 std::numeric_limits<int>::max() &#xff09;。 鉴别准确表示的类…

在Kubernetes中实现gRPC流量负载均衡

在尝试将gRPC服务部署到Kubernetes集群中时&#xff0c;一些用户&#xff08;包括我&#xff09;面临的挑战之一是实现适当的负载均衡。在深入了解如何平衡gRPC的方式之前&#xff0c;我们首先需要回答一个问题&#xff0c;即为什么需要平衡流量&#xff0c;如果Kubernetes已经…

【技能树笔记】网络篇——练习题解析(五)

目录 前言 一、应用层的作用 1.1 应用层的作用 二、HTTP协议 2.1 HTTP协议 三、FTP协议 3.1 FTP协议 四、DNS协议 4.1 DNS协议 五、DHCP协议 5.1 DHCP协议 六、邮件协议 6.1 电子邮件协议 总结 前言 本篇文章给出了CSDN网络技能树中的部分练习题解析&#xff0c…

检验检疫系统(LIS)源码:C# + MVC + SQLserver + Redis

LIS系统源码技术特点&#xff1a;采用.Net Core新的技术框架、DEV报表、前端js封装、分布式文件存储、分布式缓存等&#xff0c;支持LIS独立部署&#xff0c;Docker部署等多种方式。 技术架构&#xff1a;ASP.NET CORE 3.1 MVC SQLserver Redis等 开发语言&#xff1a;C…

每日一题——数据分析题

2023年上海市高等学校信息技术水平考试模拟题&#xff1a;数据分析题 读取csv文件这里可以使用pd.read_csv() import pandas as pd# 读取CSV文件 fileroad r素材\city_GDP.csv data pd.read_csv(fileroad, encodinggbk)# 输入地区城市名 city input("请输入城市&#…

SpringBoot之实现Web消息实时消息推送

文章目录 1 实时消息推送1.1 消息推送1.2 准备sql1.3 短轮询1.4 长轮询1.4.1 简介1.4.2 代码示例 1.5 iframe流1.6 SSE1.6.1 简介1.6.2 与 WebSocket 区别1.6.3 代码示例 1.7 MQTT1.7.1 简介1.7.2 为什么要用 MQTT协议 1.8 WebSocket 1 实时消息推送 1.1 消息推送 推送的场景…

[NCTF2019]SQLi regexp 盲注

/robots.txt 访问一下 $black_list "/limit|by|substr|mid|,|admin|benchmark|like|or|char|union|substring|select|greatest|%00|\|| |in|<|>|-|\.|\(\)|#|and|if|database|users|where|table|concat|insert|join|having|sleep/i";If $_POST[passwd] admi…

Vue的MVVM模型

MVVM模型代表三个东西&#xff1a; 1. M : 模型&#xff08;model&#xff09; --> data中的数据 2. V : 视图&#xff08;view) --> 模版代码 3. VM : 视图模型&#xff08;viewmodel&#xff09; --> Vue实例 我们用代码来展示上图中的关系&#xff1a; 也就…

激光除草距离我们实际的农业生活还有多远,结合近期所见所感基于yolov8开发构建田间作物杂草检测识别系统

最近的中秋、国庆双节相信很多朋友都会回家和家人团聚&#xff0c;我也一样&#xff0c;我的家乡是比较小众偏远的乡村&#xff0c;童年给我的最大的记忆就是干不完的农活&#xff0c;而这农活中很大一部分就是蹲在田间地头去人力拔草、撒肥料等&#xff0c;人力终究是很慢效率…