nps/frps内网穿透使用 IPv4 / IPv6 双栈环境

社区话题 Linux/macOS 与自动化运维 nps/frps内网穿透使用 IPv4 / IPv6 双栈环境

标签: ,

正在查看 1 条回复
  • 作者
    帖子
    • #1305

      追光
      管理员

      🌐 IPv4 / IPv6 双栈环境配置方法

      本文介绍如何在 IPv4 与 IPv6 双栈网络环境 中,为 NPS(内网穿透服务) 与 FRP(反向代理工具) 配置双栈访问,使客户端可以自动优先使用 IPv6,若不可达则回落到 IPv4。

      一、域名解析配置

      以示例域名 connect.newvfx.com 为例,确保该域名同时解析到 IPv4 与 IPv6 地址。

      主机记录 类型 记录值 说明
      @ 或 connect A 43.143.133.170 IPv4 地址
      @ 或 connect AAAA 2402:4e00:c052:1a00:921e:e502:2eae:0 IPv6 地址

      ✅ 建议:
      • TTL 可设置为 600(10分钟)左右。
      • 确保外层防火墙同时开放 IPv4 与 IPv6 对应端口(如 55000、55007 等)。

      二、客户端(npc)连接配置

      客户端配置文件通常为 npc.conf,示例:

      [common]
      ## 单独使用 IPv4 或 IPv6 的配置:
      # server_addr=43.143.133.170:你的端口号
      # server_addr=[2402:4e00:c052:1a00:921e:e502:2eae:0]:你的端口号
      
      ## 在双栈环境下,使用域名自动选择可用协议:
      server_addr=connect.newvfx.com:端口号
      
      conn_type=tcp
      vkey=密钥
      tls_enable=true
      
      ## 自动重连(推荐开启)
      auto_reconnection=true

      🧩 说明:
      • 当 server_addr 使用域名时,系统会根据 DNS 解析结果自动尝试 IPv6 → IPv4 顺序连接。
      • 若 IPv6 可用,优先使用 IPv6;否则自动切换到 IPv4。
      • 若你仅需单栈访问,请去掉未使用的配置行。

      三、服务端(frps)配置示例

      服务端配置文件 frps.ini 示例:

      [common]
      ## 单独使用 IPv4 或 IPv6 的配置:
      # serverAddr = "43.143.133.170"
      # serverAddr = "[2402:4e00:c052:1a00:921e:e502:2eae:0]"
      
      ## 双栈环境下推荐使用域名:
      serverAddr = "connect.newvfx.com"
      serverPort = 你的端口号
      
      # 认证方式
      auth.method = "token"
      auth.token = "密钥tocker"
      
      # 可选:开启 QUIC 或 TLS 传输以增强安全性
      # transport.protocol = "quic"
      # tls.enable = true

      四、IPv6 地址写法注意事项 ⚠️

      IPv6 地址内部自带多个冒号(:),
      若要加端口号,必须使用方括号包裹地址:

      错误写法

      server_addr=2402:4e00:c052:1a00:921e:e502:2eae:0:端口号	

      正确写法

      server_addr=[2402:4e00:c052:1a00:921e:e502:2eae:0]:端口号

      否则程序会报错:

      invalid address
      missing brackets in address

      五、测试与验证
      1. 验证 DNS 解析是否生效:

      nslookup connect.newvfx.com

      确认能同时解析出 IPv4 与 IPv6。

      2. 验证 IPv6 直连可用性:

      ping6 connect.newvfx.com

      3. 验证 NPS 或 FRP 连接:

      npc -config=npc.conf

      若 IPv6 可通,会显示:

      connect to [2402:4e00:c052:1a00:921e:e502:2eae:0]:55007 success

      六、补充建议
      • 若云服务器外层已有防火墙或 WAF,请确保其同时允许 IPv6 流量。
      • 如使用腾讯云、阿里云等,请开启:
      • 实例安全组的 IPv6 入站规则
      • 弹性公网 IPv6 地址(EIP v6)
      • 对于内部穿透通信(nps、frp),建议开启:
      • TLS 或 QUIC
      • 鉴权 Token / vkey
      • 自动重连机制

      ✅ 总结

      项目 IPv4 IPv6 双栈推荐
      域名解析 A AAAA ✅ 同时开启
      地址写法 43.143.133.170:55007 [2402:4e00:…]:55007 ✅ 域名自动选择
      NPS 客户端 npc.conf 同步支持 ✅ 推荐使用域名
      FRP 服务端 frps.ini 同步支持 ✅ 推荐使用域名

    • #1309

      追光
      管理员

      我主要使用手机网络来进行穿透,遇到的问题如下:

      NPS在ipv4模式下稳定快速,但在ipv6上不够稳定,尤其在穿透minecraft的时候经常会出现连接较慢或者回退失败的现象。所以建议nps尽可能使用ipv4,而frps在双ip模式下稳定可靠。使用纯ipv6 会偶尔连接不上的情况。

      ipv6是未来发展的趋势、在nginx、apache服务器上已经是坚固稳定的存在,但在具体应用软件上的连接方面仍然存在不确定性,需要严格测试应用环境后再使用。

正在查看 1 条回复
  • 在下方一键注册,登录后就可以回复啦。