3x-ui/internal/sub
Pejman Yousefi 40cea0c2fe
feat(sub): generate random IPs from CIDR host addresses (#6784)
Operators who front a server with an IP range (a CDN or anycast prefix) had to
list each address as its own host. A host address may now be a CIDR, and every
subscription fetch expands it into up to randomCount (1–100, default 1) unique
random host IPs from the range, IPv4 and IPv6 alike, skipping the network and
broadcast addresses. The panel's own previews, QR codes and tunnel config
exports (WireGuard, AmneziaWG, TUIC, MTProto) expand it the same way, and the
externalProxy importer writes the model's default count so the re-sync still
recognises untouched imported hosts.
2026-10-24 05:13:44 +02:00
..
build_urls_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
calendar_expire.go feat(sub): add opt-in month-end expiry presentation (#6517) 2026-09-14 12:10:25 +02:00
calendar_expire_test.go feat(sub): add opt-in month-end expiry presentation (#6517) 2026-09-14 12:10:25 +02:00
characterization_test.go
clash_external.go fix(sub): preserve external VLESS encryption in Clash subscriptions (#6576) 2026-09-26 20:31:50 +02:00
clash_external_quota_test.go fix(sub): drop external Clash shadowsocks nodes the panel cannot express (#6508) 2026-09-13 20:01:58 +02:00
clash_external_shadowsocks_test.go feat(sub): opt-in dns and sniffer from remote Clash rules (#6868) 2026-10-24 04:21:04 +02:00
clash_external_vless_test.go feat(sub): opt-in dns and sniffer from remote Clash rules (#6868) 2026-10-24 04:21:04 +02:00
clash_info_node_test.go feat(sub): opt-in dns and sniffer from remote Clash rules (#6868) 2026-10-24 04:21:04 +02:00
clash_remote_dns_test.go feat(sub): opt-in dns and sniffer from remote Clash rules (#6868) 2026-10-24 04:21:04 +02:00
clash_service.go fix(sub): pass numeric XMUX counts to Clash reuse-settings (#6843) 2026-10-24 04:51:16 +02:00
clash_service_test.go fix(sub): pass numeric XMUX counts to Clash reuse-settings (#6843) 2026-10-24 04:51:16 +02:00
clash_yaml.go
clash_yaml_test.go
controller.go feat(sub): opt-in dns and sniffer from remote Clash rules (#6868) 2026-10-24 04:21:04 +02:00
controller_test.go fix(sub): isolate Incy subscription routing from Happ headers (#6810) 2026-10-13 16:01:32 +02:00
default.json fix(sub): drop legacy freedom.domainStrategy from JSON sub template (#6609) 2026-09-26 21:13:39 +02:00
default_json_test.go fix(sub): drop legacy freedom.domainStrategy from JSON sub template (#6609) 2026-09-26 21:13:39 +02:00
dist.go
endpoint.go fix(sub): carry REALITY ML-KEM hint in VLESS links (#6712) 2026-10-02 15:44:41 +02:00
endpoint_test.go feat(sub): refine Happ routing presets, serverDescription escaping, and auto-detect placement (#6488) 2026-09-13 12:53:57 +02:00
export_all_links_test.go fix(inbounds): serve fresh client UUIDs for list and allLinks (#6458) 2026-09-12 11:12:13 +02:00
external_config.go fix(sub): keep serverDescription literal in external link fragments (#6580) 2026-09-26 22:00:09 +02:00
external_config_test.go feat(sub): opt-in dns and sniffer from remote Clash rules (#6868) 2026-10-24 04:21:04 +02:00
external_hwid_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
external_only_sub_test.go feat(sub): opt-in dns and sniffer from remote Clash rules (#6868) 2026-10-24 04:21:04 +02:00
external_remark_test.go fix(sub): keep serverDescription literal in external link fragments (#6580) 2026-09-26 22:00:09 +02:00
external_subscription.go feat(sub): make external subscription fetch User-Agent configurable (#6613) 2026-09-26 23:36:33 +02:00
external_subscription_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
forwarded_trust.go
forwarded_trust_test.go fix(sub): never use X-Real-IP as the subscription host (#6608) 2026-09-26 21:13:46 +02:00
happ.go fix(sub): make Happ require auth on its local SOCKS/HTTP proxy (#6628) 2026-09-26 22:03:20 +02:00
happ_test.go fix(sub): make Happ require auth on its local SOCKS/HTTP proxy (#6628) 2026-09-26 22:03:20 +02:00
host_cidr.go feat(sub): generate random IPs from CIDR host addresses (#6784) 2026-10-24 05:13:44 +02:00
host_cidr_test.go feat(sub): generate random IPs from CIDR host addresses (#6784) 2026-10-24 05:13:44 +02:00
host_sub.go feat(sub): generate random IPs from CIDR host addresses (#6784) 2026-10-24 05:13:44 +02:00
host_sub_test.go feat(sub): generate random IPs from CIDR host addresses (#6784) 2026-10-24 05:13:44 +02:00
hwid_controller_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
hysteria_geco_uri_test.go fix(sub): export Hysteria2 Gecko obfs in Clash/Mihomo subscriptions 2026-10-14 14:42:00 +02:00
hysteria_server_description_test.go fix(sub): append host serverDescription to hysteria links (#6740) 2026-10-05 19:05:13 +02:00
inactive_external_sub_test.go
incy.go feat(sub): add Incy app-management parameters (#6650) 2026-09-27 01:06:17 +02:00
incy_test.go feat(sub): add Incy app-management parameters (#6650) 2026-09-27 01:06:17 +02:00
info_endpoint_test.go feat(sub): redesign the subscription page around usage, tabs and app imports 2026-09-16 01:55:56 +02:00
json_dns.go feat(sub): let the panel set the JSON subscription DNS servers (#6485) 2026-09-13 11:51:56 +02:00
json_dns_controller_test.go feat(sub): let the panel set the JSON subscription DNS servers (#6485) 2026-09-13 11:51:56 +02:00
json_dns_test.go feat(sub): let the panel set the JSON subscription DNS servers (#6485) 2026-09-13 11:51:56 +02:00
json_flow_gate_test.go feat(sub): opt-in dns and sniffer from remote Clash rules (#6868) 2026-10-24 04:21:04 +02:00
json_info_node_test.go feat(sub): bake Happ/INCY routing profiles into the JSON subscription (#6402) 2026-09-10 17:05:54 +02:00
json_routing.go feat(sub): bake Happ/INCY routing profiles into the JSON subscription (#6402) 2026-09-10 17:05:54 +02:00
json_routing_baked_test.go feat(sub): bake Happ/INCY routing profiles into the JSON subscription (#6402) 2026-09-10 17:05:54 +02:00
json_routing_test.go feat(sub): bake Happ/INCY routing profiles into the JSON subscription (#6402) 2026-09-10 17:05:54 +02:00
json_service.go feat(xray): update xray-core to v26.10.21 and adapt panel 2026-10-22 17:10:11 +02:00
json_service_test.go feat(xray): update xray-core to v26.10.21 and adapt panel 2026-10-22 17:10:11 +02:00
links.go fix(mtproto): use hosts for public share links (#6369) 2026-09-08 15:36:57 +02:00
links_test.go fix(inbounds): serve fresh client UUIDs for list and allLinks (#6458) 2026-09-12 11:12:13 +02:00
masque_test.go fix(finalmask): keep a single udphop mask last in every client finalmask 2026-10-11 18:02:12 +02:00
mutation_audit_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
page_data_test.go
placeholders.go fix(sub): prevent default profile page URL disclosure (#6538) 2026-09-15 21:13:29 +02:00
placeholders_test.go fix(sub): prevent default profile page URL disclosure (#6538) 2026-09-15 21:13:29 +02:00
profile_mode_test.go fix(sub): prevent default profile page URL disclosure (#6538) 2026-09-15 21:13:29 +02:00
remark_vars.go feat(sub): add dummy info node and status configs for subscriptions (#6412) 2026-09-08 17:14:01 +02:00
remark_vars_test.go
remote_routing.go feat(sub): opt-in dns and sniffer from remote Clash rules (#6868) 2026-10-24 04:21:04 +02:00
remote_routing_test.go feat(sub): opt-in dns and sniffer from remote Clash rules (#6868) 2026-10-24 04:21:04 +02:00
salamander_uri_test.go
service.go fix(wireguard): check every line of generated client configs 2026-10-24 01:10:09 +02:00
service_amneziawg_test.go fix(wireguard): check every line of generated client configs 2026-10-24 01:10:09 +02:00
service_dedup_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
service_exclude_from_sub_test.go feat(sub): opt-in dns and sniffer from remote Clash rules (#6868) 2026-10-24 04:21:04 +02:00
service_flow_test.go feat(xray): update xray-core to v26.10.21 and adapt panel 2026-10-22 17:10:11 +02:00
service_info_node_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
service_mtproto_test.go fix(mtproto): use hosts for public share links (#6369) 2026-09-08 15:36:57 +02:00
service_orphaned_stats_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
service_property_test.go
service_sharelink_test.go fix(sub): keep the spider settings in a reality spiderX seed's query (#6694) 2026-10-03 00:31:52 +02:00
service_sort_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
service_test.go fix(finalmask): keep a single udphop mask last in every client finalmask 2026-10-11 18:02:12 +02:00
service_tuic_test.go feat(tuic): implement native in-process Go TUIC v5 server (#6577) 2026-10-03 02:56:02 +02:00
service_tunnel_hosts_test.go fix(hosts): advertise Hosts in every WireGuard, AmneziaWG and TUIC config 2026-09-30 15:03:16 +02:00
service_userinfo_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
service_wireguard_test.go fix(sub): preserve per-inbound tunnel identity in subscriptions (#6653) 2026-09-26 20:31:47 +02:00
shadowsocks_plugin_import_test.go fix(link): rebuild shadowsocks tcp/http obfuscation on import (#6505) 2026-09-13 19:58:27 +02:00
sub.go feat(sub): opt-in dns and sniffer from remote Clash rules (#6868) 2026-10-24 04:21:04 +02:00
sub_balancer_protocol_tag_test.go feat(sub): bake Happ/INCY routing profiles into the JSON subscription (#6402) 2026-09-10 17:05:54 +02:00
sub_balancer_test.go feat(sub): bake Happ/INCY routing profiles into the JSON subscription (#6402) 2026-09-10 17:05:54 +02:00
sub_fetch_test.go
sub_json_observatory_test.go feat(sub): bake Happ/INCY routing profiles into the JSON subscription (#6402) 2026-09-10 17:05:54 +02:00
sub_panic_test.go feat(sub): opt-in dns and sniffer from remote Clash rules (#6868) 2026-10-24 04:21:04 +02:00
sub_scale_test.go perf(tests): copy a migrated template DB instead of migrating per test 2026-09-27 03:04:50 +02:00
vless_route.go
vless_route_sub_test.go feat(sub): opt-in dns and sniffer from remote Clash rules (#6868) 2026-10-24 04:21:04 +02:00
vless_route_test.go
vmess_tls_import_test.go fix(link): read the vmess certificate checks on import (#6507) 2026-09-13 19:58:10 +02:00
xdrive_test.go feat(xray): add the XDRIVE transport 2026-10-11 08:21:08 +02:00