Skip to content

freedom 出站中 sockopt 的部分设定失效 #6393

Description

@yang05051

问题描述

在最新 beta 版本 (v26.06.27) 中,Xray 似乎忽略了 freedom 中的部分 sockopt 设定,不再起作用。而同一个配置中,最新 release 版本 (v26.03.27) 不存在该问题。

复现步骤

出站为如下配置:

{
    "protocol": "freedom",
    "streamSettings": {
        "sockopt": {
            "domainStrategy": "UseIP",
            "happyEyeballs": {
                "tryDelayMs": 250,
                "prioritizeIPv6": true
            }
        }
    },
    "tag": "direct_"
}

DNS 为如下配置:

"dns": {
    "servers": [
        "https+local://my.adguardhome.dev/dns-query"
    ],
    "disableFallback": true,
    "disableCache": false
}

在 v26.06.27 中,以下设定被忽略:

  • domainStrategy 被忽略,出站请求不再调用设定好的 DNS 解析,而直接走系统 DNS
  • prioritizeIPv6 被忽略,不再优先使用 IPv6 连接

而 v26.03.27 不存在问题。

证据/日志证据


2026/06/27 15:38:58.485640 [Info] [1571701218] app/proxyman/outbound: app/proxyman/outbound: failed to process outbound traffic > proxy/freedom: failed to open connection to tcp:my.adguardhome.dev > common/retry: [proxy/freedom: failed to get IP address for domain internal-domain.com] > common/retry: all retry attempts failed

其中,internal-domain.com 的内部 DNS 记录不对外公开,仅能由上游 DNS my.adguardhome.dev 解析。而日志显示无法取得 IP,说明未使用设定好的上游 DNS 服务器解析。

关于 prioritizeIPv6,可通过 https://cloudflare.com/cdn-cgi/trace 观察。同一配置下,Xray 版本为 v26.03.27 时,trace 显示的 IP 为 v6 IP;而升级到 v26.06.27 后,显示的 IP 变回 v4。

临时缓解措施

可临时将 freedom 出站改为:

{
    "protocol": "freedom",
    "targetStrategy": "UseIPv6v4",
    "tag": "direct_"
}

但该方案丢失了 tryDelayMs 的设定,以及 RFC-8305 的双栈行为。

其他信息

  • 系统版本: Ubuntu 24.04.4 LTS
  • 上游 DNS: AdGuardHome

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions