//此配置适用于有上层 dns 服务器时作透明代理网关
{
  "log": {
    "disabled": false,
    "level": "info",
    "timestamp": true
  },
  "dns": {
    "servers": [
      {
        "tag": "proxy-dns",
        "address": "tls://8.8.8.8",
        "detour": "Proxy"
      },
      {
        "tag": "local-dns",
        "address": "223.5.5.5",
        "detour": "direct"
      },
      {
        "tag": "fakeip-dns",
        "address": "fakeip"
      },
      {
        "tag": "block-dns",
        "address": "rcode://success"
      }
    ],
    "rules": [
      {
        "domain_suffix": [
          "ads.fmdisk.com",
          "ads.feemoo.com",
          "googleads.g.doubleclick.net",
          "ads.google.com",
          "afd.l.google.com",
          "mobileads.google.com"
        ],
        "domain_keyword": [
          "umeng",
          "googleads"
        ],
        "server": "block-dns"
      },
      {
        "rule_set": [
          "geosite-category-ads-all"
        ],
        "server": "block-dns"
      },
      {
        "outbound": "any",
        "server": "local-dns"
      },
      {
        "domain_suffix": [
          ".cn",
          "gdmf.apple.com",
          "steamcdn-a.akamaihd.net",
          "cm.steampowered.com",
          "steamserver.net",
          "cdn.mileweb.cs.steampowered.com.8686c.com",
          "cdn-ws.content.steamchina.com",
          "cdn-qc.content.steamchina.com",
          "cdn-ali.content.steamchina.com",
          "epicgames-download1-1251447533.file.myqcloud.com",
          "dl.steam.clngaa.com",
          "dl.steam.ksyna.com",
          "st.dl.bscstorage.net",
          "st.dl.eccdnx.com",
          "st.dl.pinyuncloud.com",
          "steampipe.steamcontent.tnkjmec.com",
          "steampowered.com.8686c.com",
          "steamstatic.com.8686c.com",
          "wmsjsteam.com",
          "xz.pphimalayanrt.com",
          "cm.steampowered.com",
          "steamcontent.com",
          "steamusercontent.com"
        ],
        "domain_keyword": [
          "moutai",
          "sina",
          "bilibili",
          "airdroid",
          "announce",
          "torrent",
          "tracker"
        ],
        "server": "local-dns"
      },
      {
        "rule_set": [
          "geosite-apple-cn",
          "geosite-biliintl",
          "geosite-category-games@cn",
          "geosite-geolocation-cn",
          "geosite-private",
          "geoip-cn"
        ],
        "server": "local-dns"
      },
      {
        "domain_suffix": [
          "emby.wtf",
          "ampproject.org",
          "ampproject.net",
          "g.whatsapp.net",
          "us-west-2.amazonaws.com",
          "developer.apple.com",
          "testflight.apple.com",
          "humblebundle.com",
          "goo.gl",
          "gvt1.com",
          "youtu.be",
          "ytimg.com",
          "ggpht.com",
          "steamcommunity-a.akamaihd.net",
          "steamstore-a.akamaihd.net",
          "fanatical.com",
          "humblebundle.com",
          "playartifact.com",
          "steam-chat.com",
          "steamcommunity.com",
          "underlords.com"
        ],
        "domain_keyword": [
          "v2ex"
        ],
        "server": "fakeip-dns"
      },
      {
        "rule_set": [
          "geosite-telegram",
          "geosite-github",
          "geosite-google-cn",
          "openai"
        ],
        "server": "fakeip-dns"
      },
      {
        "query_type": [
          "A"
        ],
        "server": "fakeip-dns"
      }
    ],
    "strategy": "ipv4_only",
    "final": "local-dns",
    "independent_cache": true,
    "fakeip": {
      "enabled": true,
      "inet4_range": "198.18.0.0/15"
    }
  },
  "inbounds": [
    {
      "type": "tun",
      "tag": "tun-in",
      "interface_name": "tun0",
      "inet4_address": "172.19.0.1/30",
      "mtu": 1500,
      "auto_route": true,
      "strict_route": false,
      "auto_redirect":true,
      "route_exclude_address_set": [
        "geoip-cn"
      ],
      "stack": "system",
      "sniff": true,
      "sniff_override_destination": true
    },
    //以下端口号需与上游 dns 服务器 remote 地址端口相同，以使上游远程 dns 传入 sing-box
    //上游 mosdns 配置示例：https://raw.githubusercontent.com/PaPerseller/r2s-armbian-configure/main/mosdns/config-fakeip.yaml
    {
      "type": "direct",
      "listen": "::",
      "listen_port": 5330,
      "sniff": true,
      "tag": "dns-in"
    }
  ],
  "outbounds": [
    {
      "tag": "Proxy",
      "outbounds": [
        "reality-template",
        "vision-template"
      ],
      "interrupt_exist_connections": true,
      "type": "selector"
    },
    {
      "type": "direct",
      "tag": "direct"
    },
    {
      "type": "dns",
      "tag": "dns-out"
    },
    {
      "type": "block",
      "tag": "block"
    },
    {
      //以 reality 协议为例, 对应值请勿套用, tcp multi_path 需服务端同时开启方会生效
      "tag": "reality-template",
      "server": "server",
      "server_port": 443,
      "type": "vless",
      "uuid": "2d5f4b9a-0a96-42ed-aae3-b1f8854cf931",
      "flow": "xtls-rprx-vision",
      "tls": {
        "enabled": true,
        "server_name": "servername",
        "reality": {
          "enabled": true,
          "public_key": "SUDD3lECQszxyDD9FZFcB0QpG3XzaVD8tzEH98kcEko",
          "short_id": "c24d2408508ee08f"
        },
        "utls": {
          "enabled": true,
          "fingerprint": "chrome"
        }
      },
      "tcp_fast_open": true,
      "tcp_multi_path": true
    },
    {
      //以 vision 协议为例, 对应值请勿套用, tcp multi_path 需服务端同时开启方会生效
      "tag": "vision-template",
      "server": "server",
      "server_port": 443,
      "type": "vless",
      "uuid": "2d5f4b9a-0a96-42ed-aae3-b1f8854cf931",
      "flow": "xtls-rprx-vision",
      "tls": {
        "enabled": true,
        "server_name": "servername",
        "utls": {
          "enabled": true,
          "fingerprint": "ios"
        }
      },
      "tcp_fast_open": true,
      "tcp_multi_path": true
    }
  ],
  "route": {
    "rules": [
      {
        "inbound": "dns-in",
        "outbound": "dns-out"
      },
      {
        "protocol": "dns",
        "outbound": "dns-out"
      },
      {
        "port": 53,
        "outbound": "dns-out"
      },
      {
        "clash_mode": "Direct",
        "outbound": "direct"
      },
      {
        "clash_mode": "Global",
        "outbound": "Proxy"
      },
      {
        "type": "logical",
        "mode": "or",
        "rules": [
          {
            "port": 853
          },
          {
            "network": "udp",
            "port": 443
          },
          {
            "protocol": "stun"
          }
        ],
        "outbound": "block"
      },
      {
        "domain_suffix": [
          "ads.fmdisk.com",
          "ads.feemoo.com",
          "googleads.g.doubleclick.net",
          "ads.google.com",
          "afd.l.google.com",
          "mobileads.google.com"
        ],
        "domain_keyword": [
          "umeng",
          "googleads"
        ],
        "outbound": "block"
      },
      {
        "rule_set": [
         "geosite-category-ads-all"
        ],
        "outbound": "block"
      },
      {
        "ip_is_private": true,
        "outbound": "direct"
      },
      {
        "ip_cidr": [
          "107.182.18.145",
          "45.121.184.0/24",
          "103.10.124.0/23",
          "103.28.54.0/24",
          "146.66.152.0/24",
          "146.66.155.0/24",
          "153.254.86.0/24",
          "155.133.224.0/22",
          "155.133.230.0/24",
          "155.133.232.0/23",
          "155.133.234.0/24",
          "155.133.236.0/22",
          "155.133.240.0/23",
          "155.133.244.0/23",
          "155.133.246.0/24",
          "155.133.248.0/21",
          "162.254.192.0/21",
          "185.25.182.0/23",
          "190.217.32.0/22",
          "192.69.96.0/22",
          "205.196.6.0/24",
          "208.64.200.0/22",
          "208.78.164.0/22",
          "205.185.194.0/24"
        ],
        "outbound": "direct"
      },
      {
        "domain_suffix": [
          ".cn",
          "gdmf.apple.com",
          "cdn.jsdelivr.net",
          "steamcdn-a.akamaihd.net",
          "cm.steampowered.com",
          "steamserver.net",
          "cdn.mileweb.cs.steampowered.com.8686c.com",
          "cdn-ws.content.steamchina.com",
          "cdn-qc.content.steamchina.com",
          "cdn-ali.content.steamchina.com",
          "epicgames-download1-1251447533.file.myqcloud.com",
          "dl.steam.clngaa.com",
          "dl.steam.ksyna.com",
          "st.dl.bscstorage.net",
          "st.dl.eccdnx.com",
          "st.dl.pinyuncloud.com",
          "steampipe.steamcontent.tnkjmec.com",
          "steampowered.com.8686c.com",
          "steamstatic.com.8686c.com",
          "wmsjsteam.com",
          "xz.pphimalayanrt.com",
          "cm.steampowered.com",
          "steamcontent.com",
          "steamusercontent.com"
        ],
        "domain_keyword": [
          "moutai",
          "sina",
          "czjky",
          "weixin",
          "bilibili",
          "airdroid",
          "announce",
          "torrent",
          "tracker"
        ],
        "outbound": "direct"
      },
      {
        "rule_set": [
          "geosite-apple-cn",
          "geosite-biliintl",
          "geosite-category-games@cn",
          "geosite-geolocation-cn",
          "geosite-private",
          "geoip-cn"
        ],
        "outbound": "direct"
      },
      {
        "ip_cidr": [
          "1.1.1.1",
          "1.0.0.1",
          "8.8.8.8",
          "8.8.4.4"
        ],
        "outbound": "Proxy"
      },
      {
        "domain_suffix": [
          "emby.wtf",
          "ampproject.org",
          "ampproject.net",
          "g.whatsapp.net",
          "us-west-2.amazonaws.com",
          "developer.apple.com",
          "humblebundle.com",
          "goo.gl",
          "gvt1.com",
          "youtu.be",
          "ytimg.com",
          "ggpht.com",
          "steamcommunity-a.akamaihd.net",
          "steamstore-a.akamaihd.net",
          "fanatical.com",
          "humblebundle.com",
          "playartifact.com",
          "steam-chat.com",
          "steamcommunity.com",
          "underlords.com"
        ],
        "domain_keyword": [
          "appledaily",
          "instagram",
          "v2ex"
        ],
        "outbound": "Proxy"
      },
      {
        "rule_set": [
          "geosite-telegram",
          "geoip-telegram",
          "geosite-github",
          "geosite-google-cn",
          "openai"
        ],
        "outbound": "Proxy"
      }
    ],
    "rule_set": [
      {
        "tag": "geosite-category-ads-all",
        "type": "remote",
        "format": "binary",
        "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/PaPerseller/sing-geosite/rule-set/geosite-category-ads-all.srs",
        "download_detour": "direct",
        "update_interval": "10d"
      },
      {
        "tag": "geosite-telegram",
        "type": "remote",
        "format": "binary",
        "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo-lite/geosite/telegram.srs",
        "download_detour": "direct",
        "update_interval": "30d"
      },
      {
        "tag": "geosite-apple-cn",
        "type": "remote",
        "format": "binary",
        "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/PaPerseller/sing-geosite/rule-set/geosite-apple-cn.srs",
        "download_detour": "direct",
        "update_interval": "30d"
      },
      {
        "tag": "geosite-google-cn",
        "type": "remote",
        "format": "binary",
        "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/PaPerseller/sing-geosite/rule-set/geosite-google-cn.srs",
        "download_detour": "direct",
        "update_interval": "30d"
      },
      {
        "tag": "geosite-biliintl",
        "type": "remote",
        "format": "binary",
        "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo/geosite/biliintl.srs",
        "download_detour": "direct",
        "update_interval": "30d"
      },
      {
        "tag": "geosite-category-games@cn",
        "type": "remote",
        "format": "binary",
        "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/PaPerseller/sing-geosite/rule-set/geosite-category-games@cn.srs",
        "download_detour": "direct",
        "update_interval": "30d"
      },
      {
        "tag": "geosite-geolocation-cn",
        "type": "remote",
        "format": "binary",
        "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/PaPerseller/sing-geosite/rule-set/geosite-geolocation-cn.srs",
        "download_detour": "direct",
        "update_interval": "10d"
      },
      {
        "tag": "geosite-private",
        "type": "remote",
        "format": "binary",
        "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo-lite/geosite/private.srs",
        "download_detour": "direct",
        "update_interval": "30d"
      },
      {
        "tag": "geoip-telegram",
        "type": "remote",
        "format": "binary",
        "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo-lite/geoip/telegram.srs",
        "download_detour": "direct",
        "update_interval": "30d"
      },
      {
        "tag": "geoip-cn",
        "type": "remote",
        "format": "binary",
        "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/Loyalsoldier/geoip/release/srs/cn.srs",
        "download_detour": "direct",
        "update_interval": "5d"
      },
      {
        "tag": "geosite-geolocation-!cn",
        "type": "remote",
        "format": "binary",
        "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/PaPerseller/sing-geosite/rule-set/geosite-geolocation-!cn.srs",
        "download_detour": "direct",
        "update_interval": "10d"
      },
      {
        "tag": "geosite-github",
        "type": "remote",
        "format": "binary",
        "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo-lite/geosite/github.srs",
        "download_detour": "direct",
        "update_interval": "30d"
      },
      {
        "tag": "openai",
        "type": "remote",
        "format": "binary",
        "url": "https://mirror.ghproxy.com/https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo-lite/geosite/openai.srs",
        "download_detour": "direct",
        "update_interval": "30d"
      }
    ],
    "auto_detect_interface": true,
    "final": "Proxy"
  },
  "experimental": {
    "cache_file": {
      "enabled": true,
      "path": "/usr/local/share/sing-box/cache.db",
      "store_fakeip": true
    },
    "clash_api": {
      "external_ui": "metacubexd",
      "external_controller": "0.0.0.0:9090",
      "external_ui_download_detour": "direct",
      "default_mode": "rule",
      "external_ui_download_url": "https://mirror.ghproxy.com/https://github.com/MetaCubeX/metacubexd/archive/gh-pages.zip"
    }
  }
}
