--严格来说...这玩意真不能算内网穿透。

背景

IPv4 地址枯竭是因为 IPv4 协议所能提供的地址空间有限。IPv4 使用 32 位地址,理论上可以提供 2^32(约 42 亿)个不同的地址。然而,随着互联网的爆炸性增长和设备的普及,这个地址空间很快就被用尽了。

在 IPv4 中,每个设备(例如计算机、手机、服务器等)需要一个唯一的 IP 地址以便在网络上进行通信。由于全球互联网的快速发展,设备数量急剧增加,导致 IPv4 地址的需求迅速超过了可用的地址数量。这导致了 IPv4 地址短缺的问题,一些地区已经完全用尽了可用的 IPv4 地址,而其他地区也面临着不足的挑战。

在 ipv4 资源日益枯竭的今天,连国际大厂亚马逊都得靠 ipv4 收费来回本了,我们这普普通通的家宽想向运营商大大申请一个公网 IP 可是难上加难,电信和联通或许还有些许申请的可能性,像咱这种移动用户就压根没希望了。但是,天无绝人之路。虽然 ipv4 申请不到,可咱还有 ipv6 啊。

IPV6-足够给每个沙子分配一个 IP!

IPv6,全称为 Internet Protocol Version 6,即互联网协议第 6 版,是 IETF(互联网工程任务组)设计的用于替代现行版本 IP 协议(IPv4)的下一代 IP 协议。IPv4 使用 32 位地址,最多提供约 43 亿个 IP 地址,而 IPv6 采用 128 位地址,理论上可以提供近乎无限的地址空间,足以为地球上每一粒沙子分配一个唯一的 IP 地址。

我国 IPV6 现状

中国的 IPv6 发展正处于快速发展阶段。自 2017 年中共中央办公厅、国务院办公厅印发《推进互联网协议第六版(IPv6)规模部署行动计划》以来,中国在 IPv6 的规模部署和应用方面取得了显著进展。以下是一些关键数据和进展:

  1. 用户增长:IPv6 活跃用户数从 2017 年的 7400 万户增长到了 2021 年的 5.33 亿户活跃用户,增长了 6 倍多。IPv6 在移动网络中的流量占比已经达到了 22.87%。
  2. 网络基础设施:三大基础电信企业的 LTE 网络、城域网已基本完成 IPv6 改造,并为用户分配 IPv6 地址。骨干网、城域网及骨干直联点的 IPv6 改造也在稳步推进。
  3. IPv6 地址资源:截至 2019 年 5 月,中国已申请 IPv6 地址资源总量达到 47282 块(/32),位居全球第一位。这表明中国在 IPv6 地址资源方面拥有充足的储备。
  4. 根服务器:中国已经拥有 1 个 IPv6 主根服务器和 3 个辅根服务器,这在全球 IPv6 网络中具有重要地位。
  5. 行业应用:政府网站(国家级与省级)对 IPv6 的支持率已经达到 80%,云计算、内容分发网络(CDN)企业对 IPv6 的支持率较高。商业网站及移动互联网应用对 IPv6 的支持率水平差距较大,但正在逐步提升。
  6. 目标规划:中国设定了明确的 IPv6 发展目标,包括到 2023 年移动网络 IPv6 流量占比达到 50%,固定网络 IPv6 流量占比达到 15%;到 2025 年,移动网络 IPv6 流量占比达到 70%,固定网络 IPv6 流量占比达到 20%。
  7. 技术创新:在 IPv6 的基础上,中国正在研究和部署一系列创新技术,如 SRv6(Segment Routing over IPv6),以及应用感知网络(APN6)、确定性网络(FlexE)等,以支持 5G、云计算、工业互联网、物联网等领域的发展。

真正的开始

折腾前的准备

确定自己是否有公网 IPV6

这里给两个网址

https://ip.sb/

https://test-ipv6.com/

如果出现下面结果就是有 IPV6 了

QQ 截图 20240130182137

没有怎么办

如果实在没有获取到 ipv6,那么可能有以下几种情况:
1.地区运营商整个机房都没开启 IPV6,这种情况实属活久见系列,至少我除了水贴的时候见过一次意外真还没见过,如果有兄弟真是这种情况可以留言让咱看看眼界。

2.路由器没有开启 ipv6。这种情况大概是最多的,在路由器后台开启即可,以自家 TP 为例:后台-路由设置-IPV6 设置。(注意,TP 家的路由器固件有的自带防火墙,需要找客服要一个无防火墙的固件才行)

3.光猫没有开启 ipv6。这种情况可以和自家运营商的运维师傅说一下,或者要个超级密码自己进光猫后台改。

部署 DDNS-GO

安装

一键脚本安装 docker

curl -fsSL https://get.docker.com | bash -s docker

使用 docker 安装 DDNS-GO

docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root jeessy/ddns-go

然后就可以通过 ip:9876 访问 ddns-go 后台

QQ 截图 20240130184930

购买域名并获取 API

购买域名推荐 namesilo,六位数字 xyz 域名几块钱一年还自带 whose 信息保护,然后打开 cloudflare,点击添加站点。

QQ 截图 20240130190137

输入域名

QQ 截图 20240130190317

计划选择免费,然后直接继续。

QQ 截图 20240130190431

QQ 截图 20240130190551

然后按照要求在 namesilo 添加两条 ns 记录QQ 截图 20240130190925

域名设置完成,接下来开始获取 API,先打开网址QQ 截图 20240130191345

QQ 截图 20240130191420
QQ 截图 20240130191522

最终成功获得一个 token,然后在 ddns-go 后台的 dns 服务商处选择 cloudflare 并输入 token,保存即可。

设置 ddns

先进入 cloudflare,为自己之前配置好的域名添加一条 aaaa 记录。

类型选择 AAAA。

名称填一个自己喜欢的,比如我这里写了 ddns,假设我的域名为 123.com,那么后续我填写进 ddnsgo 和自己访问的地址就是 ddns.123.com

这个 ipv6 地址可以直接写自己机器的地址,也可以随便写一个,我这里测试用的直接填了腾讯云的 dns 服务器地址:2402:4e00::

(代理状态不要动,保持小黄云,这样我们才能在仅 v4 网络环境下访问域名)

QQ 截图 20240130192439

然后进入 ddnsgo 后台,勾选 ipv6,在 domains 中填写你上面添加的域名,例如 ddns.123.com,保存!

QQ 截图 20240130191858

尾声

文章看到这里,你就已经成功的实现了外网的访问啦,如果你的本地端口为 8888,那么在外网访问 ddns.123.com:8888 就好啦。另外,这里其实还有两个折腾的点,一个是外网的免端口访问,一个子域名对应一个服务,另一个是 DDNSGO 自带的 webhook 功能,这俩就等后续再做介绍啦!