应用管理

通过订阅管理应用程序设置

应用程序管理功能包括两个部分:

若要启用参数,请传入值 true1;若要禁用参数,请传入任意其他非空值(例如 0false)。

标准参数

订阅自动更新

系统将创建一个任务,按指定的时间间隔执行该操作。根据内部优先级,系统会尝试在指定时间启动订阅更新。 如果由于某种原因在指定时间间隔内未执行更新,则会在下次启动应用程序时自动进行。 时间间隔以小时为单位设置,且必须为整小时的倍数。

该参数的配置示例:

profile-update-interval: [int]

传递方式:

通过 HTTP Headers:
HTTP/2 200 
date: Wed, 24 Nov 2024 10:00:52 GMT
content-type: application/json
content-length: 3798
content-disposition: attachment; filename="213"
profile-update-interval: 1
通过订阅正文:
#profile-update-interval: 1
vless://70cc48c5‑b2f4…
vmess://zkIAU1JitkI…
订阅名称

订阅配置文件的名称。可以以纯文本形式或 base64(UTF-8)形式传递。限制:最大长度 — 25 个字符。

通过订阅正文传递时,需在参数前加 # 符号(例如 #profile-title)。

该参数的配置示例:

profile-title: [string]

传递方式:

通过 HTTP Headers:
HTTP/2 200 
date: Wed, 24 Nov 2024 10:00:52 GMT
content-type: application/json
content-length: 3798
content-disposition: attachment; filename="213"
profile-title: Name VPN
通过订阅正文:
#profile-title: Name VPN
vless://70cc48c5‑b2f4…
vmess://zkIAU1JitkI…
订阅状态栏(流量、到期日期)

显示余额、已用流量和订阅到期日期的信息。 在应用程序中,状态栏左侧显示已用流量(上传 + 下载),右侧在 "/" 符号后显示总流量(total)。 订阅到期日期在 expire 参数中指定。 **注意:**所有数据通过一个 header 传输,并以 ; 符号分隔。

该参数的配置示例:

subscription-userinfo: [string]

传递方式:

通过 HTTP Headers:
HTTP/2 200 
date: Wed, 24 Nov 2024 10:00:52 GMT
content-type: application/json
content-length: 3798
content-disposition: attachment; filename="213"
subscription-userinfo: upload=0; download=2153701362; total=0; expire=1790951622
通过订阅正文:
#subscription-userinfo: upload=0; download=2153701362; total=0; expire=1790951622
vless://70cc48c5‑b2f4…
vmess://zkIAU1JitkI…
支持页面链接

跳转到支持页面的按钮。 以位于状态栏右侧的蓝色图标显示。 如果链接指向 Telegram,则显示 Telegram 图标;其他情况下使用标准链接图标。

该参数的配置示例:

support-url: [string]

传递方式:

通过 HTTP Headers:
HTTP/2 200 
date: Wed, 24 Nov 2024 10:00:52 GMT
content-type: application/json
content-length: 3798
content-disposition: attachment; filename="213"
support-url: https://t.me/happ_chat
通过订阅正文:
#support-url: https://t.me/happ_chat
vless://70cc48c5‑b2f4…
vmess://zkIAU1JitkI…
网站页面链接

跳转到订阅网站页面的按钮。 以位于状态栏左侧的蓝色图标显示。 如果未设置该参数,图标将显示为灰色。

该参数的配置示例:

传递方式:

公告

订阅可以包含公告文本,以 plain textBase64 格式传递。 **限制:**显示文本的最大长度 — 200 个字符

该参数的配置示例:

传递方式:

禁用路由

用于在应用程序中全局禁用路由的参数。

该参数的配置示例:

传递方式:

隧道配置(仅限 Desktop)

为 sing-box 核心传递您自己的隧道配置。

该参数的配置示例:

传递方式:

高级参数

更改订阅 URL

如果域名被您的提供商封锁,用户只能通过 VPN 才能连接服务器和更新订阅,则此参数正是为您准备的。通过在此参数值中指定一个新的域名,您将确保它自动替换为所有订阅用户使用。

该参数的配置示例:

传递方式:

更改订阅域名

在不更改完整 URL 的情况下更改站点域名,保留地址的其余部分。

该参数的配置示例:

传递方式:

Fallback URL(备用订阅 URL)

如果主 URL 不可用、返回 300–599 错误或 9 秒内未响应,应用程序将切换到 Fallback URL(如果可用)。

该参数的配置示例:

传递方式:

订阅中的服务器描述

允许您设置一个附加说明文字,显示在服务器名称下方,代替默认文本(例如 "VMess"、"VLESS"、"Trojan")。

  • 最大长度 — 30 个字符。

  • 如果屏幕上显示不下,将以省略号截断。

  • title 之后,使用 ? 分隔符进行设置。

示例:

高级公告

更加醒目的公告。分为两种类型:任意的信息文本(sub-info)和订阅到期的系统通知(sub-expire)。

订阅到期通知具有优先级,会在到期前 3 天或到期后自动显示。信息块仅在没有正在显示的 expire 消息时才显示。

这两种机制都可以通过 HTTP headers 显式禁用。如果传入参数后未取消,它们将保持激活状态,直到订阅被删除。

META PARAM KEY
类型
必填
限制 / 取值
描述

sub-info-color

String

red、blue、green(默认 blue)

信息块的颜色

sub-info-text

String

是*

最长 200 个字符

信息块的主文本。没有此参数时,块不显示。或向该参数传 0 时也不显示。空字符串会禁用显示

sub-info-button-text

String

最长 25 个字符

按钮文字。如果缺失 — 不显示按钮

sub-info-button-link

String

任意字符串(URL / deeplink)

按钮链接。在浏览器中打开,不做校验

sub-expire

Boolean

true | 1 = 启用

启用订阅到期信息显示机制

sub-expire-button-link

String

任意字符串(URL / deeplink)

"续订"按钮的链接。没有链接则不显示按钮

显示逻辑(摘要)

条件
结果

sub-expire = true 且订阅在 ≤ 3 天内到期

显示消息"您的订阅将在 N 天后到期。"

sub-expire = true 且订阅已到期

显示消息"订阅已到期!"

sub-expire = true 且天数 > 3

到期消息被隐藏

没有到期日期

不显示到期信息

存在正在显示的 expire 消息

sub-info 块不显示

没有 expire 消息且存在 sub-info-text

显示 sub-info 块

sub-info-text = 0

sub-info 块被禁用

sub-expire ≠ true | 1

expire 机制被禁用

说明

说明

这些参数仅对传入它们的订阅生效

如果参数是通过推送传入且未被显式禁用,它们将无限期保持激活

expire 按钮的文字始终为"Renew(续订)"

天数(N)按完整天数计算,最大为 3

传递方式:

订阅分片与 Fronting

部分 CDN 支持 domain fronting。这允许通过第三方域名连接到您的站点。

例如,指定连接地址为 visa.com,并在 Host header 中设置 my-domain.com,提供商只会看到对 visa.com 的请求。

您还可以通过 SNI TLSHello 中的数据包分片(fragmentation)访问您的域名以获取服务器列表。

默认情况下,所有订阅均启用分片。

带参数的 URL 方案

Fragmentation 包含三个参数:[length][interval][packets]

使用 fronting 时,必须先指定通过其进行连接的 URL 域名。还必须设置 resolve-address — 可以是域名或 IP 地址 — 以及 host,需要与所选提供商网络中的主机匹配。

No Limit 模式

No Limit 模式可用于所有类型的协议,或仅用于 xhttp。提高 xray-core 的 RAM 限制,从而提高稳定性和性能。

重要:该功能处于 beta 测试阶段。仅使用其中一种启用选项(全部启用或仅 xhttp 启用)— 不允许同时启用两者。

该参数的配置示例:

传递方式:

高级分片

此功能目前处于封闭测试阶段,即将推出……

不可关闭的 HWID

默认情况下,所有 Happ 应用程序都启用了 HWID。但如果您希望用户无法通过在应用程序设置中关闭该参数来停止转发,可以在订阅中一并传递一个特殊参数。

该参数的配置示例:

传递方式:

订阅到期通知

您可以启用自动订阅到期通知功能。 用户将在订阅到期前 3 天收到提醒:应用程序将在三天内每天发送一条通知。这有助于用户及时续订。

通知文本:

该参数的配置示例:

传递方式:

隐藏订阅中的服务器设置

禁止订阅用户查看和编辑服务器配置。该设置同时适用于已添加的订阅以及将来添加的订阅。

该参数的配置示例:

传递方式:

域名解析

应用程序可以在建立连接之前预先解析服务器域名。 您可以指定任意 DoH 服务器,连接到 Xray 服务器时,域名将被替换为获取到的 IP 地址。

如果某个域名返回多个 IP 地址,应用程序会自动选择响应时间(ping)最短的那个。 不过请注意:当 IP 地址数量较多时,连接可能需要更长时间,因为会预先测试所有选项。

该参数的配置示例:

传递方式:

应用程序设置管理

自动连接

允许在应用程序启动时自动连接到服务器。 此外,通过 subscription-autoconnect-type 参数,您可以指定连接到特定服务器的准则。

该参数的配置示例:

传递方式:

自动 Ping

在打开应用程序时(如有必要)自动对服务器列表进行测试。

该参数的配置示例:

传递方式:

所有订阅自动更新

在应用程序中,您可以一次性启用或禁用所有订阅的自动更新 — 该设置同时应用于所有订阅。如果只需要为特定订阅设置自动更新,请使用"订阅自动更新"功能。当全局设置被禁用时,每个订阅自行决定更新时间。

该参数的配置示例:

传递方式:

分片与噪声

这是所有订阅的全局分片管理参数。如果只需要为特定订阅或服务器分配分片,请使用免费功能和应用程序的通用文档说明。当全局设置被禁用时,每个订阅自行决定其分片设置。

该参数的配置示例:

传递方式:

Ping

此功能允许您选择应用程序中执行 ping 的方式。 有四个可用选项:

  • via Proxy - GET

  • via Proxy - HEAD

  • TCP

  • ICMP 对于"via Proxy"模式,您还可以额外指定用于 ping 检查的 URL。

该参数的配置示例:

传递方式:

User-Agent

此功能允许您更改获取订阅时在 headers 中使用的 User-Agent。适用于提供商屏蔽带有非标准或不合适 headers 请求的情况。

该参数的配置示例:

传递方式:

应用程序自启动

此功能允许在设备开机时自动启动应用程序。目前仅在 Android 上可用。

该参数的配置示例:

传递方式:

启动应用程序时更新订阅

此功能在每次打开应用程序时自动更新所有订阅。

该参数的配置示例:

传递方式:

指定应用程序的代理(Android)

在此参数中,您可以指定应使用 VPN 或相反绕过 VPN 的应用程序列表。如果列出的应用程序尚未安装到设备上,则会在首次安装后的 VPN 连接时自动纳入考虑。

该参数的配置示例:

传递方式:

指定应用程序的代理(反选,Android)

在此参数中,您可以指定应使用 VPN 或相反绕过 VPN 的应用程序列表。 选中除列表中指定之外的所有应用程序。

该参数的配置示例:

传递方式:

指定应用程序的代理(覆盖设置,Android)

在此参数中,您可以指定应使用 VPN 或相反绕过 VPN 的应用程序列表。 清除当前所有已选的应用程序,然后仅从指定列表中选择应用程序。

该参数的配置示例:

传递方式:

数据包分析(Sniffing)

xray-core 中,sniffing 用于分析连接的前几个数据包,并自动识别协议(HTTP、TLS、BitTorrent 等)和域名(SNI/Host)。 它可能会影响 WeChat 应用中的媒体加载。默认已启用。

该参数的配置示例:

传递方式:

禁用订阅折叠

此功能禁用订阅折叠能力:服务器列表始终完整显示,处于展开视图。

该参数的配置示例:

传递方式:

强制展开订阅

通过订阅更新接收到此参数时,如果订阅处于折叠状态,应用程序将强制将其展开。值 false 会被忽略:此参数仅用于展开,不能用它来折叠订阅。

该参数的配置示例:

传递方式:

Ping 显示模式

允许使用图标代替时间值进行显示。

该参数的配置示例:

传递方式:

Mux

xray-core 中的 Mux 是一项多路复用功能,允许将来自多个虚拟 TCP 连接的数据通过单个物理 TCP 连接传输。其设计目的是减少 TCP 握手的延迟,而不是提高吞吐量(甚至可能降低大文件下载的速度)。在 outbound 配置中进行设置,包含 enabled 和 concurrency(最小 -1,最大 1024)等参数。

该参数的配置示例:

传递方式:

Proxy \ TUN 模式(仅限 Desktop)

必须只使用这两个参数中的其中之一!这些参数决定添加/更新订阅时的连接类型。

该参数的配置示例:

传递方式:

TUN 模式(仅限 Desktop)

决定 TUN 连接使用哪种模式。

  • system — 使用操作系统的系统网络栈。 快速高效,但依赖于路由和防火墙的正确配置。

  • gvisor — 用户空间的 gVisor 栈。 对内核规则以及与 iptables/nftables/Docker 冲突的依赖更少,具有更好的隔离性;可能略有性能下降。

该参数的配置示例:

传递方式:

隧道核心选择(仅限 Desktop)

决定 TUN 连接使用哪种核心。可用选项:\

该参数的配置示例:

传递方式:

Exclude Routes(排除的路由)

定义一组子网和 IP 地址,这些地址的流量不得通过隧道传输。 地址以单行指定,使用空格和逗号分隔。

该参数的配置示例:

传递方式:

Exclude Routes Set(设置排除的路由)

定义一组子网和 IP 地址,这些地址的流量不得通过隧道传输。 地址以单行指定,使用空格和逗号分隔。 设置之前会清空当前列表。

该参数的配置示例:

传递方式:

主题(仅限 iOS)

允许您将配色主题更改为个性化主题。您可以在编辑器中创建自己的主题 — 长按"Appearance theme(外观主题)"标签以打开菜单。创建的主题可以导出到剪贴板,也可以从剪贴板、.happ 文件或通过订阅导入。

该参数的配置示例:

传递方式:

包含所有网络(仅限 iOS)

在隧道(NetworkExtension)中启用所有网络的使用。该功能从 iOS 16.4 开始提供。 在更低 iOS 版本的设备上,此参数将不产生任何效果,DevSettings 中也不会出现相应的开关。

该参数的配置示例:

传递方式:

排除本地网络(仅限 iOS)

如果启用了"包含所有网络"选项,此参数允许从隧道(NetworkExtension)中排除本地网络。 本地网络流量将直连。适用于 iOS 16.4+。

该参数的配置示例:

传递方式:

排除 APNS(仅限 iOS)

如果启用了"包含所有网络"选项,此参数允许从隧道中排除 Apple Push Notification Service(APNS)。 所有 Apple 通知 IP 范围将直连。适用于 iOS 16.4+。

该参数的配置示例:

传递方式:

不使用服务器列表过滤

Premium 订阅中默认启用自动过滤:\

  • 如果服务器名称包含"only WiFi" — 仅在通过 Wi-Fi 连接时可见。

  • 如果名称包含"only Mobile" — 仅在移动网络时可见。 此选项禁用该行为。

该参数的配置示例:

传递方式:

置顶当前订阅

允许在总列表中置顶(Pin)或取消置顶订阅。\

  • true — 将订阅置顶。

  • false — 取消置顶。

该参数的配置示例:

传递方式:

阻止更改 User-Agent

阻止用户通过应用程序界面手动更改 User-Agent。 但提供商仍然可以通过 change-user-agent 参数远程更改它。

该参数的配置示例:

传递方式:

更改订阅内的服务器排序

决定订阅内服务器的显示顺序:

  • without — 不排序(按照后端的传递顺序)。

  • ping — 按延迟排序(ping 低的服务器显示在前,不可用的显示在最后)。

  • alphabet — 按字母顺序。

该参数的配置示例:

传递方式:

从 JSON 获取隧道 DNS

仅当同时满足以下所有条件时,该逻辑才会生效:使用 JSON 配置、 没有路由配置文件,并且在设置中启用了该开关。 系统会从 JSON 中 dns.servers 的第一个服务器获取。

选择算法:

  • 直接 IP:如果指定了 IPv4/IPv6,将其设置为隧道的 DOU DNS。

  • DoH:如果指定了 URL(https://),则在 dns.hosts 中查找 IP。

    • iOS:配置完整的 DoH 请求。

    • Android / Desktop:使用 hosts 中的 IP(DOU)。

  • 对象:从 address 字段中提取值,与上述描述类似。

  • Fallback DNS: 如果主服务器无效,则使用默认值:

    • Android / Desktop:1.1.1.1(DOU)。

    • iOS:Cloudflare DoH(https://cloudflare-dns.com/dns-query)。

该参数的配置示例:

传递方式:

SOCKS Inbound 认证

定义本地 SOCKS 代理的工作模式和凭据。\

  • auto — 自动生成并将数据注入到配置和隧道中。

  • manual — 使用在设置中设定的用户名和密码。

  • from-json — 从 JSON 配置中获取设置。对于 URL 配置,此选项在此情景下等同于 auto 模式。

  • disable — 禁用认证。

参数:

配置示例:

传递方式:

HTTP Inbound 认证

定义本地 HTTP 代理的工作模式和凭据。\

  • auto — 自动生成并将数据注入到配置和隧道中。

  • manual — 使用在设置中设定的用户名和密码。

  • from-json — 从 JSON 配置中获取设置。对于 URL 配置,此选项在此情景下等同于 auto 模式。

  • disable — 禁用认证。

参数:

传递方式:

下载 geo 文件的 User-Agent

允许在下载 Geo-IP 和 Geo-Site 文件时更改 User-Agent 头的值。

可用值:

  • safari-mac

  • chrome-win

  • safari-ios

  • firefox-win

  • chrome-android

配置示例:

传递方式:

代理 ping 超时(仅限 iOS)

设置通过代理服务器检查可用性(ping)时的超时时间(秒)。 允许范围:5 – 15 秒。 超出范围的值将被忽略,并使用默认值 7。

配置示例:

传递方式:

隐藏 VPN 图标(Hide Proxy Icon)

控制系统状态栏中 VPN 图标的显示。 该开关会对排除路由列表(excluded-routes)中是否同时存在这两条路由(::/128 和 0.0.0.0/8)做出反应。 启用该选项时,这两条路由会被自动添加到排除列表中;禁用时,它们会被移除。

配置示例:

传递方式:

Last updated