内网穿透方法汇总

内网穿透

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发生变化,及时通过配置的账号和密码(token)调用API去实时更新域名对应的新的IP,做到动态解析域名的效果(注意:ddns只能够对部署设备上配置相关网口实现动态域名解析,比如配置在路由器上,能够对WAN和LAN的IP进行动态解析,不能把路由器连接的主机的IP进行动态解析,针对有公网ipv4,则可以设置ipv4端口转发,从而实现访问到连接路由的机器,而对于ipv6,目前可以在软路由中安装luci-app-socatg 实现ipv6转私网ipv4,前提是要有软路由或者刷openwrt固件的路由,)。

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结合ddns实现直接访问内网。

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地址隐藏的主要方式:
- 客户端主要隐藏自己地址。
- 服务器主要通过反向代理等手段隐藏内部拓扑和实际地址。

image-20231008213707615

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

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

image-20231008232830965

4.申请注册dns,实现ddns

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
1.(管理员账户拥有所有权限,简单但是安全性插)

image-20231008231343783

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

2.阿里云创建新的账户(专用的ddns账户,更安全,稍微复杂),并授权具体的操作

image-20231012121458292

image-20231012121537877

image-20231012121612461

image-20231012121922399

image-20231012123306667

image-20231012123345745
在这里插入图片描述

4.在ImmortalWrt路由器的ddns中填写accesskey和secret,aliyun的服务器以及对应的域名,并通过socatg实现ipv6转局域网ipv4。(https://github.com/big-tooth/luci-app-socatg)

image-20231018222749858

image-20231018222317004

image-20231018222749858

先安装socat(系统包搜索),再安装socatg(https://github.com/big-tooth/luci-app-socatg)
image-20231020201526731

5.访问测试

windows访问测试

image-20231008233423857

手机端访问测试(RD客户端,微软官方软件)

image-20231020194857781

image-20231020194951246

image-20231020195011386

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值