内网穿透方法汇总

内网穿透

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,做到动态解析域名的效果。

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.被访问主机开启远程桌面

2.获取自己的ipv6地址

bash 复制代码
直接调出终端输入ipconfig

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

IPv6地址的补充

bash 复制代码
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地址(全局地址或者临时地址)连接远程桌面

bash 复制代码
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?

2.工作台--资源管理--对应的域名资源找到资源,并设置主机域名(次级域名)
3.获取aliyun的accesskey

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

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

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.直接访问测试

相关推荐
hzyyyyyyyu1 小时前
内网安全隧道搭建-ngrok-frp-nps-sapp
服务器·网络·安全
刽子手发艺1 小时前
WebSocket详解、WebSocket入门案例
网络·websocket·网络协议
速盾cdn5 小时前
速盾:CDN是否支持屏蔽IP?
网络·网络协议·tcp/ip
yaoxin5211235 小时前
第二十七章 TCP 客户端 服务器通信 - 连接管理
服务器·网络·tcp/ip
内核程序员kevin5 小时前
TCP Listen 队列详解与优化指南
linux·网络·tcp/ip
PersistJiao7 小时前
Spark 分布式计算中网络传输和序列化的关系(一)
大数据·网络·spark
黑客Ash10 小时前
【D01】网络安全概论
网络·安全·web安全·php
->yjy10 小时前
计算机网络(第一章)
网络·计算机网络·php
摘星星ʕ•̫͡•ʔ11 小时前
计算机网络 第三章:数据链路层(关于争用期的超详细内容)
网络·计算机网络