...

Subscription Configuration

Learn how to add, update, and manage AiBooster subscriptions, plus detailed configuration file structure.


Subscription Configuration

Subscriptions are the most convenient way to get and update nodes. This article covers how to manage subscriptions and the detailed configuration file structure.

What is a Subscription?

A subscription is a URL link that contains:

  • Server node information
  • Auto-update functionality
  • Traffic usage statistics

Configuration File Structure

AiBooster uses JSON format configuration files. Here is the complete configuration structure:

{
  "log": {},
  "dns": {},
  "ntp": {},
  "inbounds": [],
  "outbounds": [],
  "route": {},
  "experimental": {}
}

Configuration Fields

FieldTypeRequiredDescription
logObjectNoLog configuration, controls log level and output
dnsObjectNoDNS configuration, for domain resolution
ntpObjectNoNTP configuration, for time synchronization
inboundsArrayNoInbound configuration, defines local listeners
outboundsArrayYesOutbound configuration, defines proxy nodes
routeObjectNoRoute configuration, defines traffic rules
experimentalObjectNoExperimental features configuration

Log Configuration (log)

{
  "log": {
    "disabled": false,
    "level": "info",
    "output": "box.log",
    "timestamp": true
  }
}
FieldTypeDefaultDescription
disabledBooleanfalseDisable log output
levelString"info"Log level: trace, debug, info, warn, error, fatal, panic
outputString-Log output file path
timestampBooleantrueWhether to add timestamp

DNS Configuration (dns)

{
  "dns": {
    "servers": [
      {
        "tag": "google",
        "address": "tls://8.8.8.8",
        "detour": "proxy"
      },
      {
        "tag": "local",
        "address": "223.5.5.5",
        "detour": "direct"
      }
    ],
    "rules": [
      {
        "domain_suffix": [".cn"],
        "server": "local"
      }
    ],
    "final": "google"
  }
}

Inbound Configuration (inbounds)

Inbounds define ports and protocols AiBooster listens on locally:

{
  "inbounds": [
    {
      "type": "mixed",
      "tag": "mixed-in",
      "listen": "127.0.0.1",
      "listen_port": 7890
    },
    {
      "type": "tun",
      "tag": "tun-in",
      "interface_name": "utun",
      "inet4_address": "172.19.0.1/30",
      "auto_route": true,
      "strict_route": true
    }
  ]
}

Supported Inbound Types:

  • mixed - HTTP/SOCKS5 mixed proxy
  • socks - SOCKS5 proxy
  • http - HTTP proxy
  • tun - TUN virtual interface (transparent proxy)
  • redirect - Transparent proxy redirect
  • tproxy - Linux transparent proxy

Outbound Configuration (outbounds)

Outbounds define proxy nodes and direct connection rules:

{
  "outbounds": [
    {
      "type": "selector",
      "tag": "proxy",
      "outbounds": ["auto", "hk-node", "us-node"],
      "default": "auto"
    },
    {
      "type": "urltest",
      "tag": "auto",
      "outbounds": ["hk-node", "us-node"],
      "url": "https://www.gstatic.com/generate_204",
      "interval": "3m"
    },
    {
      "type": "shadowsocks",
      "tag": "hk-node",
      "server": "hk.example.com",
      "server_port": 443,
      "method": "aes-256-gcm",
      "password": "your-password"
    },
    {
      "type": "direct",
      "tag": "direct"
    },
    {
      "type": "block",
      "tag": "block"
    },
    {
      "type": "dns",
      "tag": "dns-out"
    }
  ]
}

Supported Outbound Types:

  • direct - Direct connection
  • block - Block connection
  • dns - DNS outbound
  • selector - Manual node selection
  • urltest - Auto speed test selection
  • shadowsocks - Shadowsocks protocol
  • vmess - VMess protocol
  • trojan - Trojan protocol
  • hysteria - Hysteria protocol
  • hysteria2 - Hysteria2 protocol
  • vless - VLESS protocol
  • wireguard - WireGuard protocol
  • ssh - SSH protocol
  • http - HTTP proxy
  • socks - SOCKS5 proxy

Route Configuration (route)

Route defines traffic splitting rules:

{
  "route": {
    "rules": [
      {
        "protocol": "dns",
        "outbound": "dns-out"
      },
      {
        "geoip": ["private"],
        "outbound": "direct"
      },
      {
        "geosite": ["cn"],
        "outbound": "direct"
      },
      {
        "geosite": ["geolocation-!cn"],
        "outbound": "proxy"
      }
    ],
    "rule_set": [
      {
        "tag": "geoip-cn",
        "type": "remote",
        "format": "binary",
        "url": "https://example.com/geoip-cn.srs"
      }
    ],
    "final": "proxy",
    "auto_detect_interface": true
  }
}

Route Matching Conditions:

  • domain - Exact domain match
  • domain_suffix - Domain suffix match
  • domain_keyword - Domain keyword match
  • domain_regex - Domain regex match
  • geosite - GeoSite rule set
  • geoip - GeoIP rule set
  • ip_cidr - IP CIDR match
  • port - Port match
  • protocol - Protocol match
  • network - Network type (tcp/udp)

Experimental Features (experimental)

{
  "experimental": {
    "cache_file": {
      "enabled": true,
      "path": "cache.db"
    },
    "clash_api": {
      "external_controller": "127.0.0.1:9090",
      "external_ui": "ui",
      "secret": ""
    }
  }
}

Adding Subscription

Steps

  1. Get subscription link (from your service provider)
  2. Open AiBooster
  3. Tap "+" or "Add Configuration"
  4. Select "Subscription Link"
  5. Fill in information:
    • Name: Custom name (e.g., "Work Subscription")
    • URL: Paste subscription link
  6. Tap "Save"
https://example.com/api/v1/client/subscribe?token=xxxxxx

Subscription links contain your account information. Do not share with others.

Updating Subscription

Manual Update

  1. Go to Profiles page
  2. Find target subscription
  3. Tap Refresh icon
  4. Wait for update to complete

Auto Update

  1. Go to SettingsSubscription Settings
  2. Enable Auto Update
  3. Set update interval (recommended: 24 hours)
Update IntervalUse Case
1 hourFrequently changing nodes
6 hoursGeneral use
24 hoursStable providers
ManualUpdate on demand

Managing Multiple Subscriptions

AiBooster supports adding multiple subscriptions:

Switch Subscription

  1. Go to Profiles page
  2. Tap the subscription you want to use
  3. Automatically switches to that subscription's node list

Delete Subscription

  1. Long press or right-click on subscription
  2. Select Delete
  3. Confirm deletion

Edit Subscription

  1. Tap Edit icon on subscription's right side
  2. Modify name or URL
  3. Save changes

Subscription Conversion

If subscription format is incompatible, you can use subscription conversion:

Online Conversion

  1. Visit subscription conversion service
  2. Enter original subscription link
  3. Select output format (AiBooster JSON)
  4. Copy converted link
  5. Add to AiBooster

Built-in Conversion

AiBooster has built-in subscription converter:

  1. When adding subscription, select Advanced Options
  2. Choose Subscription Type:
    • Auto Detect
    • AiBooster (JSON format)
    • Clash
    • V2ray
    • Shadowsocks

Viewing Subscription Info

Tap subscription to view:

  • Node Count: Number of available servers
  • Used Traffic: Used in current period
  • Remaining Traffic: Remaining in current period
  • Expiry Date: Subscription validity
  • Last Updated: Most recent update time

Troubleshooting

Update Failed

  1. Check network connection
  2. Verify subscription link is correct
  3. Try using proxy to access subscription
  4. Contact service provider

Empty Node List

  1. Manually update subscription
  2. Check if subscription is expired
  3. Verify subscription format compatibility

Traffic Info Not Showing

Some subscriptions may not provide traffic statistics - this is normal.

Recommend regularly updating subscriptions to get the latest nodes.