HarmonyOS鸿蒙Next 5.0.0.135 SP10是否支持纯IPV6网络环境

HarmonyOS鸿蒙Next 5.0.0.135 SP10是否支持纯IPV6网络环境

因为WIFI情况下,手机获取IPV6地址受上游路由器的配置影响不够稳定,所以下列问题仅针对手机数据网络进行测试而出~

手机网络:中国联通,确认已获取公网IPV6地址。

场景:家用软路由、NAS等组建了纯IPV6网络,供外网远程访问管理,反代软件lucky,仅部署IPV6监听。

问题:外网PC、安卓手机都可正常访问,但Harmony手机无法访问,浏览器卡住约10秒后,给出错误代码:NET_ERROR{ ERR_TIMED_OUT , -7},这是为什么?有什么方法可以快速改善?还是说在服务端添加IPV4监听?


更多关于HarmonyOS鸿蒙Next 5.0.0.135 SP10是否支持纯IPV6网络环境的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

【背景知识】

  • 获取网络的连接信息:getConnectionPropertiesSync 接口。
  • 网络地址 NetAddress 中的属性 family=2 代表 IPv6,family=1 代表 IPv4。
  • 公网 IPv6 是全球唯一地址,由 ISP 分配,可直接通过互联网访问(例如以 2001 或 240x 开头的地址)。
  • 本地 IPv6 包括链路本地地址(如 FE80 开头),仅在局域网内有效,无法从外部互联网直接访问;常用于设备间内部通信。
  • 一台设备可同时拥有多个 IPv6 地址:包括至少一个本地 IPv6(用于局域网通信)和一个公网 IPv6(用于外部访问)。例如,电脑可能通过路由器获取公网 IPv6 用于上网,同时使用 FE80 地址与本地打印机通信。
  • 公网 IPv6 由 ISP 动态或静态分配,而本地 IPv6 由设备自动生成或路由器分配(如通过 SLAAC 协议)。访问外部服务时,数据需通过公网 IPv6 路由;本地 IPv6 仅限内部网络传输,提升效率。
  • 公网 IPv6 支持全球路由和 DNS 记录,本地 IPv6 不可路由至公网且无 DNS 映射。
  • 公网地址可被外部访问,本地地址仅限局域网内响应。

【解决方案】

HarmonyOS 具备 IPv6 的能力,无法检测出 IPv6 地址需要检查公网上的 IPv6 分配,有本地 IPv6 地址,但是没有公网 IPv6,通常过不了 IPv6 的网络检测。

建议使用 NetAddress 类获取当前网络的地址信息,NetAddress 类的 family 属性用于指定 IP 地址的版本,family 属性的值为 1 表示 IPv4,为 2 表示 IPv6 。

参考代码如下:

getNetwork() {
  try{
    let netHandle = connection.getDefaultNetSync();
    let connectionproperties = connection.getConnectionPropertiesSync(netHandle);
    if(connectionproperties !== undefined) {
      let arr_linkAddresses = connectionproperties.linkAddresses;
      if(arr_linkAddresses !== undefined && arr_linkAddresses instanceof Array && arr_linkAddresses.length > 0) {
        for(let i = 0; i < arr_linkAddresses.length; i++ ) {
          let address: connection.NetAddress = arr_linkAddresses[i].address;
          if(address !== undefined) {
            console.warn('chisj debug : address = ',`${address}`)
            if(address.family === 1) {
              console.warn('chisj debug : address is ipv4')
            } else if(address.family === 2) {
              console.warn('chisj debug : address is ipv6')
            }
          }
        }
      }
    }
  } catch (e) {
    console.error(`Get exception: ${e}`);
  }
}

更多关于HarmonyOS鸿蒙Next 5.0.0.135 SP10是否支持纯IPV6网络环境的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


鸿蒙5.0暂时应该无法支持对于ipv6配置,请耐心等待官方适配

HarmonyOS 5.0.0.135 SP10的IPv6数据网络配置可能未完全开放,部分运营商可能限制移动数据网络的IPv6流量穿透能力,导致访问外部IPv6服务时超时。

HarmonyOS鸿蒙Next 5.0.0.135 SP10支持纯IPv6网络环境。该系统遵循现代网络协议标准,内置完整的IPv6协议栈,能够处理IPv6地址分配、路由和数据传输。在纯IPv6网络中,系统可正常进行网络通信,包括应用访问、服务连接等功能。鸿蒙的微内核架构和分布式能力均适配IPv6网络环境,确保设备间互联互通。开发者无需额外配置即可在应用层调用IPv6网络接口。

根据您的描述,HarmonyOS Next 5.0.0.135 SP10在纯IPv6网络环境下确实可能出现连接问题。以下是关键分析:

  1. 兼容性现状:
  • HarmonyOS对IPv6的支持仍在完善中,部分网络场景可能存在兼容性问题
  • 您遇到的ERR_TIMED_OUT错误表明系统未能正确处理纯IPv6连接
  1. 临时解决方案: (1) 服务端方案:
  • 在lucky反代服务中同时启用IPv4监听(推荐)
  • 检查IPv6防火墙规则,确保ICMPv6放行

(2) 客户端方案:

  • 尝试关闭手机的IPv6隐私扩展功能
  • 使用第三方浏览器测试(如Firefox)
  1. 根本原因: 可能是HarmonyOS网络栈对纯IPv6环境的DNS解析或连接建立流程存在优化空间。建议持续关注后续版本更新日志中的网络改进说明。

当前最快速的改善方案还是在服务端启用双栈(IPv4+IPv6)支持。

回到顶部