IPv6 连通内网记录

May 18, 2025 / 多财多亿 / 18阅读 / 0评论 / 分类: 网络

手机4G和5G网络已完全支持IPv6地址访问,相当一部分的WIFI也已支持IPv6,且通过IPv6直连内网能充分利用带宽,远比通过云服务器部署NAT映射速度快(受限于云服务器带宽),这是此次准备开通IPv6访问内网的根本原因。

本站IPv6访问地址:https://v6.m2g.top:6443/

一、确认公网IP情况

当前电信运营商已不支持免费提供IPv4地址,我通过天翼网关192.168.1.1(用户名useradmin,密码在光猫设备标签上)查询网关信息得到WAN IPv6的IP是240e开头,是电信公网IPv6的IP,IPv4的WAN口IP是100.67开头,是电信内网IP。

如果不具备IPv6的公网IP或不知道光猫管理账号需向运营商打电话询问。

  • 全球单播地址(公网IPv6)
    若IPv6地址以以下前缀开头,通常为公网地址:

    • 2001:2400:240e:(中国电信)‌

    • 2408:(中国联通)、2409:(中国移动)‌

    • 2a00:(国际通用)‌

  • 内网地址(非公网)

    • fe80:开头的为本地链路地址(类似IPv4的169.254.x.x),仅限局域网使用。‌

二、路由器开启IPv6支持

我使用的华硕路由器,直接在IPv6页签开启IPv6支持,联机类型使用Native,表示由路由器进行IP分配,其中自动分配有stateless(无状态)和stateful(有状态)两种,仅作为服务器网络可以使用有状态配置,但是经过测试发现安卓手机不支持有状态IP分配,仅能获取fe80开通的内网IP,所以非必要建议使用无状态分配。

设置完成后重连WIFI,通过ipconfig等命令验证是否分配到IPv6地址,如存在240e开头的ip就算配置成功,

  1. 地址获取方式

    • 无状态配置(Stateless):

      • 客户端通过路由器发送的RA(Router Advertisement)通告中的前缀信息自动生成IPv6地址,组合方式为前缀+EUI-64或随机后缀,无需DHCPv6服务器。

      • 典型代表为SLAAC(Stateless Address Autoconfiguration)。

    • 有状态配置(Stateful):

      • 客户端通过DHCPv6服务器获取完整的IPv6地址及其他参数(如DNS),需要服务器维护地址分配状态。

  2. 管理机制

    • 无状态配置无需中心化管理,地址由客户端自主生成,缺乏集中控制。

    • 有状态配置依赖DHCPv6服务器,可实现地址租期管理、精准分配和监控。

  3. 其他参数配置

    • 无状态DHCPv6(Stateless DHCPv6)是混合模式:地址通过RA生成,但DNS等参数仍需从DHCPv6获取(O flag控制)。

    • 有状态DHCPv6则完全由服务器提供地址和参数。

  4. RA报文标志影响

    • M flag(Managed):为1时启用有状态配置,客户端必须通过DHCPv6获取地址。

    • A flag(Autonomous):为1时允许客户端在对应前缀下自动生成无状态地址。

    • O flag(Other):为1时即使使用无状态地址,仍需DHCPv6获取其他参数。

优缺点对比

  • 无状态优势在于简单、无需服务器、适应性强,但地址变化可能影响服务稳定性。

  • 有状态提供可控管理和稳定地址,但需服务器维护且复杂度较高。

三、域名申请及备案

IPv6地址较长很难记忆,且可能存在动态分配,通常建议使用域名访问,我此前已通过阿里云申请好了域名,新申请需要注意续费是否和新注册付费一致,通常十几块钱到三十几块钱一年的就好,易记即可。

需要注意新申请域名需要备案,否则可能访问不通,备案流程按照阿里云的指引即可,大约一周内可审核完成。公安备案在ICP备案完成后一个月内处理完成就行。

四、DDNS解析

如果是固定IP地址在阿里云解析配置AAAA记录指到服务器的IPv6地址就行,但很多时候可能是动态IP,就需要动态域名解析,我选择了ddns-go作为动态域名解析工具。该工具通过阿里云的API定时查询域名解析IP和本地IP对比,不一致就更新本地IP到阿里云域名解析服务。

使用docker-compose部署:

version: '3'
services:
  ddns-go:
    image: jeessy/ddns-go
    container_name: ddns-go
    restart: always
    environment:
      - TZ=Asia/Shanghai  # 设置时区,例如上海
      - INTERFACE=    # 指定用于获取公网 IP 的网络接口
      - SERVICE_PROVIDER=aliyun  # 服务商,例如阿里云
      - DOMAIN=  # 你的域名
      - TOKEN=  # 服务商提供的访问令牌或密钥
    ports:
      - "9876:9876"
    network_mode: "host"
    volumes:
      - ./config.yml:/app/config.yml  # 挂载配置文件,如果不提供,容器将使用默认配置
      - ./data:/root

访问部署服务器的9876端口,首次登录会创建账户。

配置阿里云AccessKey(建议通过访问控制 RAM 控制台创建独立子账户配置dns修改权限并创建AccessKey):

注意需要关闭IPv4的ddns:

IPv6配置,可以通过接口、网卡、命令获取本地ip,如果有多个ip可以通过正则表达是匹配获取:

完成后等待生效就行。

五、其他问题

完成以上步骤,外网访问内网仍然不通可能需要排查:

1、是否关闭IPV6 SESSION

2、路由器是否开启了IPv6防火墙(为了安全,建议开启,但是需要配置通行规则)

3、如80、443这类端口基本是被屏蔽了的,不用挣扎了~~

4、很多路由器支持IPv6但是并没有开启IPv6,所以也无法访问到IPv6的网站。

文章作者:多财多亿

文章链接:https://m2g.top//archives/ipv6-jian-zhan-ji-lu

版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议,转载请注明出处!

评论已关闭!