Files
3XUI/IPv6 中转、IPv4 出口配置攻略(3X-UI).MD

3.8 KiB
Raw Permalink Blame History

Xray: IPv6 中转、IPv4 出口配置攻略

目标链路

客户端
↓ IPv6
节点 AVLESS 入站)
↓ IPv6
节点 BShadowsocks 入站)
↓ IPv4
Internet

一、节点 B:创建 Shadowsocks 入站

在节点 B 创建一个独立的 Shadowsocks 入站,例如:

入站标签: ss-in-from-a
监听地址:任意地址
端口:自定义
加密方式:双方保持一致
密码:双方保持一致
网络: TCP/UDP

确认该端口正在监听 IPv6

ss -6 -lntup | grep '<SS端口>'

二、节点 B:创建 IPv4 出站

创建一个 Freedom 出站:

{
  "tag": "direct-v4",
  "protocol": "freedom",
  "sendThrough": "<节点B的IPv4地址>",
  "settings": {
    "domainStrategy": "UseIPv4"
  },
  "streamSettings": {
    "sockopt": {
      "domainStrategy": "ForceIPv4"
    }
  }
}

其中:

  • sendThrough 填写节点 B 本机的公网 IPv4。
  • UseIPv4ForceIPv4 用于优先或强制解析 IPv4。
  • 不会影响节点 B 上的其他入站和用户。

三、节点 B:添加路由规则

将来自节点 A 的 SS 入站转发到 IPv4 出站:

{
  "type": "field",
  "inboundTag": [
    "ss-in-from-a"
  ],
  "outboundTag": "direct-v4"
}

该规则应放在默认直连或兜底规则之前。

四、节点 A:创建 Shadowsocks 出站

地址填写节点 B 的 IPv6

{
  "tag": "to-node-b-v6",
  "protocol": "shadowsocks",
  "settings": {
    "servers": [
      {
        "address": "<节点B的IPv6地址>",
        "port": "<SS端口>",
        "method": "<加密方式>",
        "password": "<SS密码>"
      }
    ]
  }
}

注意:

  • JSON 中的 IPv6 地址不需要添加方括号。
  • 加密方式、端口和密码必须与节点 B 完全一致。
  • 建议为该链路使用独立的 SS 入站端口。

五、节点 A:创建独立 VLESS 入站

建议为这条链路创建一个独立 VLESS 入站,例如:

入站标签: vless-in-chain
监听地址: 任意地址
端口: 自定义
传输方式: 根据实际需要设置

客户端使用节点 A 的 IPv6 地址或 AAAA 域名连接。

六、节点 A:添加路由规则

将指定 VLESS 入站流量发送到节点 B:

{
  "type": "field",
  "inboundTag": [
    "vless-in-chain"
  ],
  "outboundTag": "to-node-b-v6"
}

使用 inboundTag 通常比按端口匹配更清晰,也不容易误伤其他入站。

七、重启服务

两台服务器保存配置后重启 x-ui

x-ui restart

然后确认 Xray 正常运行:

systemctl status x-ui --no-pager

八、验证 A 到 B 是否走 IPv6

在节点 A 执行:

tcpdump -ni eth0 \
'ip6 and host <节点B的IPv6地址> and port <SS端口>'

使用客户端连接并产生流量。如果看到:

节点A的IPv6地址 → 节点B的IPv6地址

以及双向 TCP 数据包,说明 A 到 B 确实通过 IPv6 通信。

九、验证最终出口是否为 IPv4

通过代理访问 IPv4 地址检测服务:

https://api.ipify.org

如果显示节点 B 的公网 IPv4,说明配置成功。

最终链路应为:

客户端 → 节点A: IPv6
节点A → 节点B: IPv6
节点B → Internet: IPv4

注意事项

  1. JSON 配置应填写到 x-ui 的「出站」或「路由」编辑器中,不要直接粘贴到 Shell。
  2. 路由规则应放在默认直连、默认代理或兜底规则之前。
  3. 如果 x-ui 会自动删除出站中的 targetStrategy,可以在节点 B 使用 Freedom + sendThrough + sockopt.domainStrategy 实现 IPv4 出口。
  4. 如果目标已经是 IPv6 地址,Xray 无法自动将它转换为对应的 IPv4。
  5. 严格要求 IPv4 出口时,应让域名在节点 B 解析,并避免客户端提前将域名解析成 IPv6 地址。
  6. 发布教程时不要公开真实密码、UUID、Reality 私钥或其他认证信息。