Some checks failed
Build and Deploy Gateway / build-and-deploy (push) Failing after 0s
128 lines
3.2 KiB
JavaScript
128 lines
3.2 KiB
JavaScript
// Готовые шаблоны правил роутинга. domains/suffixes/cidr/ports собраны из публичных
|
||
// reference-конфигов sing-box. Это пресеты «на старт», а не исчерпывающие списки.
|
||
|
||
let counter = 0;
|
||
function id(prefix) {
|
||
counter += 1;
|
||
return `${prefix}-${Date.now()}-${counter}`;
|
||
}
|
||
|
||
function template(name, outbound, fields) {
|
||
return {
|
||
id: id("tpl"),
|
||
name,
|
||
enabled: true,
|
||
outbound,
|
||
domains: [],
|
||
domainSuffixes: [],
|
||
domainKeywords: [],
|
||
ipCidrs: [],
|
||
ports: [],
|
||
networks: [],
|
||
...fields,
|
||
};
|
||
}
|
||
|
||
export const ruleTemplates = [
|
||
{
|
||
key: "lol-direct",
|
||
label: "League of Legends → direct",
|
||
description: "Riot/LoL домены и порты — играть напрямую без VPN.",
|
||
build: () =>
|
||
template("League of Legends", "direct", {
|
||
domainSuffixes: [
|
||
"leagueoflegends.com",
|
||
"riotgames.com",
|
||
"riotcdn.net",
|
||
"dyn.riotcdn.net",
|
||
],
|
||
ports: ["5000", "5223", "5222", "8088"],
|
||
}),
|
||
},
|
||
{
|
||
key: "discord-direct",
|
||
label: "Discord/Vesktop → direct",
|
||
description: "Discord voice/video и WebSocket напрямую.",
|
||
build: () =>
|
||
template("Discord", "direct", {
|
||
domainSuffixes: [
|
||
"discord.com",
|
||
"discord.gg",
|
||
"discord.media",
|
||
"discordapp.com",
|
||
"discordapp.net",
|
||
],
|
||
ports: ["50000-65535"],
|
||
networks: ["udp"],
|
||
}),
|
||
},
|
||
{
|
||
key: "telegram-vpn",
|
||
label: "Telegram → VPN",
|
||
description: "Telegram через выбранный VPN outbound.",
|
||
build: () =>
|
||
template("Telegram", "vpn", {
|
||
domainSuffixes: [
|
||
"telegram.org",
|
||
"t.me",
|
||
"telegram.me",
|
||
"telegra.ph",
|
||
"tdesktop.com",
|
||
],
|
||
ipCidrs: [
|
||
"149.154.160.0/20",
|
||
"91.108.4.0/22",
|
||
"91.108.8.0/22",
|
||
"91.108.12.0/22",
|
||
"91.108.16.0/22",
|
||
"91.108.56.0/22",
|
||
],
|
||
}),
|
||
},
|
||
{
|
||
key: "youtube-vpn",
|
||
label: "YouTube → VPN",
|
||
description: "YouTube/Google Video через VPN.",
|
||
build: () =>
|
||
template("YouTube", "vpn", {
|
||
domainSuffixes: [
|
||
"youtube.com",
|
||
"youtu.be",
|
||
"ytimg.com",
|
||
"googlevideo.com",
|
||
"youtube-nocookie.com",
|
||
],
|
||
}),
|
||
},
|
||
{
|
||
key: "steam-direct",
|
||
label: "Steam → direct",
|
||
description: "Загрузка/обновления Steam напрямую.",
|
||
build: () =>
|
||
template("Steam", "direct", {
|
||
domainSuffixes: [
|
||
"steampowered.com",
|
||
"steamcontent.com",
|
||
"steamcommunity.com",
|
||
"steamserver.net",
|
||
"cm.steampowered.com",
|
||
],
|
||
}),
|
||
},
|
||
{
|
||
key: "ads-block",
|
||
label: "Реклама → block",
|
||
description: "Базовый набор рекламных доменов — заблокировать.",
|
||
build: () =>
|
||
template("Реклама (block)", "block", {
|
||
domainSuffixes: [
|
||
"doubleclick.net",
|
||
"googlesyndication.com",
|
||
"googleadservices.com",
|
||
"adservice.google.com",
|
||
"adnxs.com",
|
||
],
|
||
}),
|
||
},
|
||
];
|