51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

IPv6 实用教程

IPv6 已经推广多年,但实用比例仍不算高,但是事实上IPv6在解决IPv4数量不足的问题上功不可没,之前介绍了 IPv6 理论知识, 本文介绍 IPv6 接地气的实用知识。

背景 {#背景}

就我个人而言,相比 IPv4,IPv6最大的优势是每台终端理论上都可以获得世界唯一的公网地址,终于配得上拥有了姓名;

那些只有拥有了公网IP才能做的事情,在运营商不提供 IPv4 地址时,IPv6 可以帮你做

需求场景 {#需求场景}

  • 大多数情况下,当前的IPv4 使用策略能满足绝大部分需求,诸如访问网络资源、访问网络服务器、访问游戏服务器 ...... 当前的情况下我们访问别人的场景都没有问题,拿着子网的 IPv4 地址通过端口映射技术不耽误使用;

  • 问题就出在我们只能访问别人的资源,一旦出现需要在公网上提供网络服务的需求时,内网IPv4地址便捉襟见肘

  • 此时我们的需求是仅有内网IPv4的地址的主机,需要为外网提供服务

IPv4 内网穿透 {#IPv4-内网穿透}

  • 内网穿透技术为拿着内网IP地址的主机提供了被外网访问的可能性,通过与拥有公网IP的中继服务器建立通信来解决"没有姓名"的问题

  • 但内网穿透技术的中继服务器往往价格不菲,而且很容易成为带宽的瓶颈

    家中带宽200M的宽带可能几十块一个月,云服务器100M带宽的一个月怎么也得千八百的吧

IPv6 {#IPv6}

  • 由于国家高瞻远瞩,早早地布局了IPv6地址的普及,同时也是破局美国自己占有大部分IPv4地址的伟大规划,各大运营商基本上都为家庭宽带分配了公网IPv6地址,为我们解决个人没有公网IP的问题提供了理论支撑
  • 需要公网IP做的事情可以交由 IPv6 代替 IPv4 完成

适用人群 {#适用人群}

总结来说,如果有如下情况,建议使用IPv6地址:

  1. 有家用主机为公网提供服务的需求
  2. 无法获取公网 IPv4 地址
  3. 厌倦了内网穿透的繁琐和性能受限
  4. 家庭宽带配置好了公网 IPv6 地址

最典型的需求就是个人 nas 了

IPv6 实用常识 {#IPv6-实用常识}

通信前提 {#通信前提}

  • 只有同时拥有 IPv6 地址的主机之间可以通过 IPv6 通信

地址头 {#地址头}

  • 国内三大运营商分配的公网 IPv6地址为 2409, 2408, 240e 开头的

全国三大运营商IPv6地址分配情况(以北京部分区域为例),格式如下

| 区县名称 | 移动宽带 | 移动基站 | 联通宽带 | 联通基站 | 电信宽带 | 电信基站 | |-----------------|-----------------------------------|-----------------------------------|-----------------------------------|-----------------------------------|---------------------------------|---------------------------------| | 110101-中国北京市东城区 | 2409:8a00::-2409:8a00:bff:: | 2409:8900::-2409:8900:bff:: | 2408:8206::-2408:8206:bff:: | 2408:8406::-2408:8406:bff:: | 240e:304::-240e:304:bff:: | 240e:404::-240e:404:bff:: | | 110102-中国北京市西城区 | 2409:8a00:c00::-2409:8a00:17ff:: | 2409:8900:c00::-2409:8900:17ff:: | 2408:8206:c00::-2408:8206:17ff:: | 2408:8406:c00::-2408:8406:17ff:: | 240e:304:c00::-240e:304:17ff:: | 240e:404:c00::-240e:404:17ff:: | | 110105-中国北京市朝阳区 | 2409:8a00:1800::-2409:8a00:23ff:: | 2409:8900:1800::-2409:8900:23ff:: | 2408:8206:1800::-2408:8206:23ff:: | 2408:8406:1800::-2408:8406:23ff:: | 240e:304:1800::-240e:304:23ff:: | 240e:404:1800::-240e:404:23ff:: |

  • fe80 开头的是内网 IPv6 地址

常用获取IPv6地址方式 {#常用获取IPv6地址方式}

  • 移动设备的移动网络只要设备支持都是会自动分配 IPv6 地址的
  • 在Wifi 下,需要使用支持 IPv6 地址的路由器理论上设备才能获得 IPv6 地址
  • 可以将支持 IPv6 的路由器设置为桥接模式来直接获得 IPv6 地址

临时 IPv6 地址 {#临时-IPv6-地址}

  • 我们可以在查看IPv6 地址时发现临时 IPv6 地址等字样
  • 这个地址是自动随机生成的对外通讯地址,会时常变化,初衷是保护计算机安全的,打一枪换一个地方,保护本地mac地址不暴露在公网之下
  • 当本地 IPv6 地址和临时地址同时存在时,对外通信用的都是临时地址,但是本地IPv6地址也是同时生效的

IPv6 实用操作 {#IPv6-实用操作}

开启与关闭 {#开启与关闭}

Linux {#Linux}
Windows {#Windows}
  • 进入 控制面板\网络和 Internet\网络连接
  • 在当前的网络连接上右键查看属性:

此种情况下表明本机开启 IPv6

  • 进入属性,控制是否勾选来开启/关闭 IPv6

配置DNS {#配置DNS}

获取地址 {#获取地址}

Windows {#Windows-2}
  • ipconfig 可以查看地址

若此处看到 24 开头的IPv6地址基本可以判定当前获取到了公网 IP

Linux {#Linux-2}
  • ifconfig
  • ip a

同样地,若此处看到 24 开头的IPv6地址基本可以判定当前获取到了公网 IP

基础命令 {#基础命令}

ping {#ping}

在Windows 和Linux 下均可以使用 ping 命令直接接IPv6 地址(与IPv4相同)

  • Windows
  • Linux

在Linxu 下 也可以使用 ping6 命令专门ping IPv6地址

  • Android

在Android终端中 Termux 可以创建 Android 控制台,其中需要使用 ping6 来接IPv6地址

ssh {#ssh}
  • 在 Windows, Linux, Android 系统下都可以直接使用 ssh 命令
Linux常用命令 {#Linux常用命令}

国内知名公共 DNS 服务器 {#国内知名公共-DNS-服务器}

https://dns.icoa.cn/

腾讯 DNS (DNSPod) {#腾讯-DNS-DNSPod}

由 DNSPod 提供的公共免费 DNS,后来 DNSPod 被腾讯(Tencent)收购,现在属于腾讯公司所有,稳定性和连通性也是不错的,经测试海外也可以使用。
DNSPod 除了 IPv4,现在同时支持 IPv6 DNS 和 DoT/DoH 服务。

| 项目 | 地址 | |-------------------------------|---------------------------------| | IPv4 | 119.29.29.29 | | IPv6 | 2402:4e00:: | | DoH 地址 | https://doh.pub/dns-query | | DoH (国密 SM2,基于腾讯云政企国密解决方案) 地址 | https://sm2.doh.pub/dns-query | | DoT 地址 | dot.pub |

阿里 DNS (Alidns) {#阿里-DNS-Alidns}

这组 DNS 是由阿里巴巴提供的,国内连通性还是不错的,海外部分地区连通性不是特别好,具体可以测试一下。
阿里 DNS 同时提供了 IPv4/IPv6 DNS 和 DoT/DoH 服务。

| 项目 | 地址 | |--------|-----------------------------------------| | IPv4 | 223.5.5.5 / 223.6.6.6 | | IPv6 | 2400:3200::1 / 2400:3200:baba::1 | | DoH 地址 | https://dns.alidns.com/dns-query | | DoT 地址 | dns.alidns.com |

百度 DNS {#百度-DNS}

中国最大的搜索引擎百度提供的公共 DNS,经测试海外连通性也是不错的,暂时百度只提供了一组 IPv4 和 IPv6 DNS 地址。

| 项目 | 地址 | |------|-----------------| | IPv4 | 180.76.76.76 | | IPv6 | 2400:da00::6666 |

360 安全 DNS {#360-安全-DNS}

360 提供的 DNS 服务,只提供了 IPv4 和 DoT/DoH 服务。

| 项目 | 地址 | |--------------------|---------------------------------| | 针对中国电信/铁通/移动的 IPv4 | 101.226.4.6 / 218.30.118.6 | | 针对中国联通的 IPv4 | 123.125.81.6 / 140.207.198.6 | | DoH 地址 | https://doh.360.cn | | DoT 地址 | dot.360.cn |

测试 IPv6 {#测试-IPv6}

测试本机是否支持 IPv6 {#测试本机是否支持-IPv6}
  1. 访问 :http://test-ipv6.com/

    如果通过了所有测试表明本机支持 IPv6

  1. https://ipw.cn/ipv6/

    如果显示自己 IPv6地址,并且 IPv6 访问优先,表明本机支持 IPv6

  1. https://ipv6.ipw.cn/

    http://[2402:4e00:1013:e500:0:940e:29d7:3443]/

    https://test.ipw.cn/

    如果访问后显示自己的 IPv6 地址表明IPv6配置成功

  2. https://ipw.cn/ipv6ping/

    访问该网站可以对自己的公网 IPv6 地址进行在线 Ping

测试网站是否支持 IPv6 访问 {#测试网站是否支持-IPv6-访问}

https://ready.chair6.net/

踩坑 {#踩坑}

都拥有 IPv6 地址,一方ping 一方通,反过来不通 {#都拥有-IPv6-地址,一方ping-一方通,反过来不通}

两台拥有IPv6地址的主机AB,A 可以 ping 通B,B ping A 超时

  • A 主机设立了放ping 防火墙,常出现在云服务器上,可以查找云服务器防火墙设置,或提工单咨询运营商如何添加防火墙规则
  • 此处以阿里云和腾讯云为例,记录防火墙设置方法
阿里云 {#阿里云}

  • 手动添加规则

腾讯云 {#腾讯云}
  • 进入自己的云实例

  • 网络信息 -> 防火墙 中配置规则

我的腾讯云服务器没有IPv6 地址因此没有设置相关规则,思路是一样的

可以ping通,但是ssh连接超时 {#可以ping通,但是ssh连接超时}

ping的 ICMP协议被放行,但tcp 22端口被拒绝访问,总结问题就是 被墙了

  • 被防火墙挡住了 tcp 22 端口的 IPv6 访问
  • 首先排查本机是否设置了防火墙,然后放行 IPv6 访问
  • 如果本机防火墙都拆光了还是ssh访问不到,那就该怀疑入网光猫路由器的防火墙了
  • 以移动宽带第二代光猫为例,展示放行IPv6 的方法,不需要管理员账户,自己就可以弄了
移动宽带第二代光猫 {#移动宽带第二代光猫}
  • 查看本地默认网关:

  • 访问地址,进入光猫管理界面,输入普通用户的账号密码:

  • 进入 安全 -> 防火墙 -> 攻击保护设置 -> 去掉Ipv6Spi

获取了IPv6地址,可以ssh可以ping,test-ipv6就是不通 {#获取了IPv6地址,可以ssh可以ping,test-ipv6就是不通}

考虑代理服务器的问题,关闭代理服务器

  • 科学上网工具经常会配置本地的代理地址,此代理地址会导致 test-ipv6 失败
  • 进入代理服务器设置,关闭相关代理

参考资料 {#参考资料}



文章链接:
https://www.zywvvd.com/notes/coding/internet/ipv6/ipv6-usage/ipv6-usage/

赞(1)
未经允许不得转载:工具盒子 » IPv6 实用教程