Правила Clash Royale для sing-box

Кто-нибудь пробовал сделать правила sing-box, чтоб трафик этой игры шел через ВПН? Работает правило package_name (на Андроиде), но хотелось бы найти домены/айпишники этой игры.

Пытался добавлять эти: Our Domains × Supercell. Также нашел clashroyaleapp.com, адреса Гугла пробовал, etc. И ничего, все равно в игру не пускает - либо через package_name работает, либо полностью трафик направлять без правил.

В общем, если кто-то пытался туннелировать эту игру, то дайте пожалуйста знать как вы это сделали, спасибо.

Так сделай route->proxy123 по package name (последним а не первым правилом) и лог в info, затем заходи в игру, играй, выходи и фильтруй лог в блокноте по proxy123

Все гениальное просто (c). Не додумался до такого почему-то. Спасибо.

Кстати, в приложении sing-box для Android, видимо ничего не отфильтруешь, пришлось вручную скроллить. Еще трафик приложения можно смотреть через мобильный AdGuard, что я и делал до этого, но нифига не работало.

Собрал адреса, сделал правила, иии… Все заработало без package_name. Забавно, что эти адреса и порты я до этого проверял, и ничего не работало. Видимо, до этого у меня был замудренный конфиг, и что-то мешало, наверное.

В общем, спасибо за помощь. Тему можно закрывать.

p.s: вот конфиг, если кому понадобится. Вписал все что нашел, может лишнее что-то есть, хз:

config.json
{
  "log": {
    "level": "warning",
    "timestamp": true
  },
  "dns": {
    "final": "cloudflare-direct",
    "strategy": "ipv4_only",
    "servers": [
      {
        "tag": "cloudflare-direct",
        "address": "https://1.1.1.1/dns-query",
        "detour": "direct-out"
      },
      {
        "tag": "cloudflare-proxy",
        "address": "https://1.1.1.1/dns-query",
        "detour": "proxy"
      }
    ],
    "rules": [
      {
        "action": "route",
        "server": "cloudflare-proxy",
        "domain_suffix": [
          "supercell.com",
          "clashroyaleapp.com",
          "usercentrics.eu",
          "recaptcha.net",
          "sentry.io",
          "googleapis.com"
        ]
      },
      {
        "action": "route",
        "server": "cloudflare-proxy",
        "port": [
          9339
        ]
      }
    ]
  },
  "inbounds": [
    {
      //..
    }
  ],
  "outbounds": [
    {
      "type": "direct",
      "tag": "direct-out"
    },
    {
      "type": "vless",
      "tag": "proxy"
      //...
    }
  ],
  "route": {
    "final": "direct-out",
    "auto_detect_interface": true,
    "rules": [
      {
        "action": "sniff"
      },
      {
        "protocol": "dns",
        "action": "hijack-dns"
      },
      {
        "action": "route",
        "outbound": "proxy",
        "domain_suffix": [
          "supercell.com",
          "clashroyaleapp.com",
          "usercentrics.eu",
          "recaptcha.net",
          "sentry.io",
          "googleapis.com"
        ]
      },
      {
        "action": "route",
        "outbound": "proxy",
        "port": [
          9339
        ]
      }
    ]
  },
  "experimental": {
    "cache_file": {
      "enabled": true
    }
  }
}

upd: вот минимальный рабочий конфиг. По сути только порт 9339 нужен. Играть не пробовал, но сообщения о геоблоке при запуске нет, т.е в игру пускает, так что видимо и так будет работать

config2.json
{
  "log": {
    "level": "warning",
    "timestamp": true
  },
  "dns": {
    "final": "cloudflare-direct",
    "strategy": "ipv4_only",
    "servers": [
      {
        "tag": "cloudflare-direct",
        "address": "https://1.1.1.1/dns-query",
        "detour": "direct-out"
      }
    ]
  },
  "inbounds": [
    {
      //...
    }
  ],
  "outbounds": [
    {
      "type": "direct",
      "tag": "direct-out"
    },
    {
      "type": "vless",
      "tag": "proxy",
      //..
    }
  ],
  "route": {
    "final": "direct-out",
    "auto_detect_interface": true,
    "rules": [
      {
        "action": "sniff"
      },
      {
        "protocol": "dns",
        "action": "hijack-dns"
      },
      {
        "action": "route",
        "outbound": "proxy",
        "port": [
          9339
        ]
      }
    ]
  },
  "experimental": {
    "cache_file": {
      "enabled": true
    }
  }
}

Еще можно сделать дамп трафика только из нужного приложения через pcapdroid

Вроде бы можно по домену game.clashroyaleapp.com, но в dns нужно установить значение reverse_mapping в true.

Или же только указанный порт оставить. Фактически по нему и работает в примере.

Да, спасибо, это лучше чем порт. Интересно, что без reverse_mapping и правда ничего не сработает :thinking:.

config.json
{
  "log": {
    "level": "warning",
    "timestamp": true
  },
  "dns": {
    "final": "cloudflare-direct",
    "reverse_mapping": true,
    "strategy": "ipv4_only",
    "servers": [
      {
        "tag": "cloudflare-direct",
        "address": "https://1.1.1.1/dns-query",
        "detour": "direct-out"
      },
      {
        "tag": "cloudflare-proxy",
        "address": "https://1.1.1.1/dns-query",
        "detour": "proxy"
      }
    ],
    "rules": [
      {
        "action": "route",
        "server": "proxy",
        "domain_suffix": [
          "clashroyaleapp.com"
        ]
      }
    ]
  },
  "inbounds": [
    {
      //..
    }
  ],
  "outbounds": [
    {
      "type": "direct",
      "tag": "direct-out"
    },
    {
      "type": "vless",
      "tag": "proxy",
      //..
    }
  ],
  "route": {
    "final": "direct-out",
    "auto_detect_interface": true,
    "rules": [
      {
        "action": "sniff"
      },
      {
        "protocol": "dns",
        "action": "hijack-dns"
      },
      {
        "action": "route",
        "outbound": "proxy",
        "domain_suffix": [
          "clashroyaleapp.com"
        ]
      }
    ]
  },
  "experimental": {
    "cache_file": {
      "enabled": true
    }
  }
}