feat: обновлены источники rule-set для sing-box
All checks were successful
Build and Deploy Gateway / build-and-deploy (push) Successful in 18s
All checks were successful
Build and Deploy Gateway / build-and-deploy (push) Successful in 18s
This commit is contained in:
@@ -138,6 +138,7 @@ function RuleSetLookupModal({ tag, url, onClose }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Каталог готовых rule-set источников для sing-box (.srs формат)
|
// Каталог готовых rule-set источников для sing-box (.srs формат)
|
||||||
|
// Источники: SagerNet (официальные, используются как встроенные), runetfreedom (RKN-реестр)
|
||||||
const RULE_SET_CATALOG = [
|
const RULE_SET_CATALOG = [
|
||||||
{
|
{
|
||||||
tag: 'geosite-runet',
|
tag: 'geosite-runet',
|
||||||
@@ -146,97 +147,98 @@ const RULE_SET_CATALOG = [
|
|||||||
category: 'RU',
|
category: 'RU',
|
||||||
description: 'Заблокированные в РФ домены по реестру РКН. Обновляется автоматически из официальных источников.',
|
description: 'Заблокированные в РФ домены по реестру РКН. Обновляется автоматически из официальных источников.',
|
||||||
examples: ['rutracker.org', 'youtube.com', 'instagram.com', 'facebook.com', 'twitter.com'],
|
examples: ['rutracker.org', 'youtube.com', 'instagram.com', 'facebook.com', 'twitter.com'],
|
||||||
use: 'direct или vpn — зависит от цели. direct — обход блокировок с российского IP.',
|
use: 'vpn — маршрутизировать заблокированные домены через VPN.',
|
||||||
|
builtIn: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tag: 'geoip-ru',
|
tag: 'geoip-ru',
|
||||||
url: 'https://cdn.jsdelivr.net/gh/Loyalsoldier/sing-box-rules@rule-set/geoip-ru.srs',
|
url: 'https://cdn.jsdelivr.net/gh/SagerNet/sing-geoip@rule-set/geoip-ru.srs',
|
||||||
source: 'Loyalsoldier',
|
source: 'SagerNet/sing-geoip',
|
||||||
category: 'RU',
|
category: 'RU',
|
||||||
description: 'IP-диапазоны, зарегистрированные в России (RIPE NCC). Покрывает российские хостинги, банки, госсайты.',
|
description: 'IP-диапазоны, зарегистрированные в России (RIPE NCC). Покрывает российские хостинги, банки, госсайты.',
|
||||||
examples: ['77.88.0.0/18 (Яндекс)', '95.173.128.0/19 (МТС)', '213.180.192.0/19 (Яндекс)'],
|
examples: ['77.88.0.0/18 (Яндекс)', '95.173.128.0/19 (МТС)', '213.180.192.0/19 (Яндекс)'],
|
||||||
use: 'direct — российские сервисы без VPN. vpn — если сервер в РФ.',
|
use: 'direct — российские сервисы без VPN.',
|
||||||
|
builtIn: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tag: 'geosite-category-ru',
|
tag: 'geosite-category-ru',
|
||||||
url: 'https://cdn.jsdelivr.net/gh/Loyalsoldier/sing-box-rules@rule-set/geosite-category-ru.srs',
|
url: 'https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-category-ru.srs',
|
||||||
source: 'Loyalsoldier',
|
source: 'SagerNet/sing-geosite',
|
||||||
category: 'RU',
|
category: 'RU',
|
||||||
description: 'Домены российских сервисов: Яндекс, VK, Mail.ru, Сбербанк, банки, госуслуги. Не заблокированные, а просто российские.',
|
description: 'Домены российских сервисов: Яндекс, VK, Mail.ru, Сбербанк, банки, госуслуги. Не заблокированные, а просто российские.',
|
||||||
examples: ['yandex.ru', 'vk.com', 'mail.ru', 'sberbank.ru', 'gosuslugi.ru', 'ozon.ru'],
|
examples: ['yandex.ru', 'vk.com', 'mail.ru', 'sberbank.ru', 'gosuslugi.ru', 'ozon.ru'],
|
||||||
use: 'direct — чтобы российские сайты открывались с российским IP (нужно для оплаты и т.п.).',
|
use: 'direct — чтобы российские сайты открывались с российским IP (нужно для оплаты и т.п.).',
|
||||||
|
builtIn: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tag: 'geosite-google',
|
tag: 'geosite-google',
|
||||||
url: 'https://cdn.jsdelivr.net/gh/Loyalsoldier/sing-box-rules@rule-set/geosite-google.srs',
|
url: 'https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-google.srs',
|
||||||
source: 'Loyalsoldier',
|
source: 'SagerNet/sing-geosite',
|
||||||
category: 'Сервисы',
|
category: 'Сервисы',
|
||||||
description: 'Все домены Google: поиск, Gmail, YouTube, Drive, Maps, Google API, reCAPTCHA и пр.',
|
description: 'Все домены Google: поиск, Gmail, YouTube, Drive, Maps, Google API, reCAPTCHA и пр.',
|
||||||
examples: ['google.com', 'googleapis.com', 'googlevideo.com', 'gstatic.com', 'ggpht.com'],
|
examples: ['google.com', 'googleapis.com', 'googlevideo.com', 'gstatic.com', 'ggpht.com'],
|
||||||
use: 'vpn — если Google заблокирован или нужна стабильная работа сервисов.',
|
use: 'vpn — если Google заблокирован или нужна стабильная работа сервисов.',
|
||||||
|
builtIn: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tag: 'geosite-youtube',
|
tag: 'geosite-youtube',
|
||||||
url: 'https://cdn.jsdelivr.net/gh/Loyalsoldier/sing-box-rules@rule-set/geosite-youtube.srs',
|
url: 'https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-youtube.srs',
|
||||||
source: 'Loyalsoldier',
|
source: 'SagerNet/sing-geosite',
|
||||||
category: 'Сервисы',
|
category: 'Сервисы',
|
||||||
description: 'Только домены YouTube и связанных CDN. Меньше чем полный Google.',
|
description: 'Только домены YouTube и связанных CDN. Меньше чем полный Google.',
|
||||||
examples: ['youtube.com', 'youtu.be', 'ytimg.com', 'googlevideo.com'],
|
examples: ['youtube.com', 'youtu.be', 'ytimg.com', 'googlevideo.com'],
|
||||||
use: 'vpn — для разблокировки YouTube.',
|
use: 'vpn — для разблокировки YouTube.',
|
||||||
|
builtIn: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tag: 'geosite-telegram',
|
tag: 'geosite-telegram',
|
||||||
url: 'https://cdn.jsdelivr.net/gh/Loyalsoldier/sing-box-rules@rule-set/geosite-telegram.srs',
|
url: 'https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-telegram.srs',
|
||||||
source: 'Loyalsoldier',
|
source: 'SagerNet/sing-geosite',
|
||||||
category: 'Сервисы',
|
category: 'Сервисы',
|
||||||
description: 'Домены и IP Telegram. Включает CDN, API и голосовые серверы.',
|
description: 'Домены и IP Telegram. Включает CDN, API и голосовые серверы.',
|
||||||
examples: ['telegram.org', 't.me', 'telegra.ph', '149.154.160.0/20'],
|
examples: ['telegram.org', 't.me', 'telegra.ph', '149.154.160.0/20'],
|
||||||
use: 'vpn — разблокировка в РФ. direct — если хочешь избежать задержек.',
|
use: 'vpn — разблокировка в РФ. direct — если хочешь избежать задержек.',
|
||||||
|
builtIn: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tag: 'geosite-openai',
|
tag: 'geosite-openai',
|
||||||
url: 'https://cdn.jsdelivr.net/gh/Loyalsoldier/sing-box-rules@rule-set/geosite-openai.srs',
|
url: 'https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-openai.srs',
|
||||||
source: 'Loyalsoldier',
|
source: 'SagerNet/sing-geosite',
|
||||||
category: 'Сервисы',
|
category: 'Сервисы',
|
||||||
description: 'ChatGPT, OpenAI API, Dall-E и другие сервисы OpenAI.',
|
description: 'ChatGPT, OpenAI API, Dall-E и другие сервисы OpenAI.',
|
||||||
examples: ['openai.com', 'chatgpt.com', 'oaistatic.com', 'oaiusercontent.com'],
|
examples: ['openai.com', 'chatgpt.com', 'oaistatic.com', 'oaiusercontent.com'],
|
||||||
use: 'vpn — OpenAI заблокирован в РФ и ряде других стран.',
|
use: 'vpn — OpenAI заблокирован в РФ и ряде других стран.',
|
||||||
|
builtIn: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tag: 'geosite-apple',
|
tag: 'geosite-apple',
|
||||||
url: 'https://cdn.jsdelivr.net/gh/Loyalsoldier/sing-box-rules@rule-set/geosite-apple.srs',
|
url: 'https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-apple.srs',
|
||||||
source: 'Loyalsoldier',
|
source: 'SagerNet/sing-geosite',
|
||||||
category: 'Сервисы',
|
category: 'Сервисы',
|
||||||
description: 'App Store, iCloud, Apple CDN, push-уведомления (APNs), iMessage.',
|
description: 'App Store, iCloud, Apple CDN, push-уведомления (APNs), iMessage.',
|
||||||
examples: ['apple.com', 'icloud.com', 'mzstatic.com', 'apple-cloudkit.com'],
|
examples: ['apple.com', 'icloud.com', 'mzstatic.com', 'apple-cloudkit.com'],
|
||||||
use: 'direct — Apple обычно работает без VPN. vpn — если нужен другой регион App Store.',
|
use: 'direct — Apple обычно работает без VPN. vpn — если нужен другой регион App Store.',
|
||||||
|
builtIn: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tag: 'geosite-github',
|
tag: 'geosite-github',
|
||||||
url: 'https://cdn.jsdelivr.net/gh/Loyalsoldier/sing-box-rules@rule-set/geosite-github.srs',
|
url: 'https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-github.srs',
|
||||||
source: 'Loyalsoldier',
|
source: 'SagerNet/sing-geosite',
|
||||||
category: 'Разработка',
|
category: 'Разработка',
|
||||||
description: 'GitHub, GitHub Actions, GitHub Pages, raw.githubusercontent.com.',
|
description: 'GitHub, GitHub Actions, GitHub Pages, raw.githubusercontent.com.',
|
||||||
examples: ['github.com', 'githubusercontent.com', 'github.io', 'githubassets.com'],
|
examples: ['github.com', 'githubusercontent.com', 'github.io', 'githubassets.com'],
|
||||||
use: 'vpn — если GitHub замедлен или заблокирован.',
|
use: 'vpn — если GitHub замедлен или заблокирован.',
|
||||||
|
builtIn: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tag: 'geosite-category-ads-all',
|
tag: 'geosite-category-ads-all',
|
||||||
url: 'https://cdn.jsdelivr.net/gh/Loyalsoldier/sing-box-rules@rule-set/geosite-category-ads-all.srs',
|
url: 'https://cdn.jsdelivr.net/gh/SagerNet/sing-geosite@rule-set/geosite-category-ads-all.srs',
|
||||||
source: 'Loyalsoldier',
|
source: 'SagerNet/sing-geosite',
|
||||||
category: 'Блокировка',
|
category: 'Блокировка',
|
||||||
description: 'Рекламные сети, трекеры, аналитика. Тысячи доменов.',
|
description: 'Рекламные сети, трекеры, аналитика. Тысячи доменов.',
|
||||||
examples: ['doubleclick.net', 'googlesyndication.com', 'amazon-adsystem.com', 'yandex-team.ru/ads'],
|
examples: ['doubleclick.net', 'googlesyndication.com', 'amazon-adsystem.com'],
|
||||||
use: 'block — блокировка рекламы и трекеров на уровне DNS.',
|
use: 'block — блокировка рекламы и трекеров на уровне DNS.',
|
||||||
},
|
builtIn: false,
|
||||||
{
|
|
||||||
tag: 'geoip-private',
|
|
||||||
url: 'https://cdn.jsdelivr.net/gh/Loyalsoldier/sing-box-rules@rule-set/geoip-private.srs',
|
|
||||||
source: 'Loyalsoldier',
|
|
||||||
category: 'Сеть',
|
|
||||||
description: 'Приватные IP-диапазоны: локальная сеть, loopback, link-local. Обычно не нужен — sing-box имеет встроенный ip_is_private.',
|
|
||||||
examples: ['10.0.0.0/8', '192.168.0.0/16', '172.16.0.0/12', '127.0.0.0/8'],
|
|
||||||
use: 'direct — локальный трафик всегда напрямую.',
|
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -376,6 +378,9 @@ function CatalogEntry({ entry, added, busy, onAdd, onLookup }) {
|
|||||||
<strong className="text-mono" style={{ fontSize: 13 }}>{entry.tag}</strong>
|
<strong className="text-mono" style={{ fontSize: 13 }}>{entry.tag}</strong>
|
||||||
<span className="badge info" style={{ fontSize: 11 }}>{entry.category}</span>
|
<span className="badge info" style={{ fontSize: 11 }}>{entry.category}</span>
|
||||||
<span className="muted" style={{ fontSize: 12 }}>{entry.source}</span>
|
<span className="muted" style={{ fontSize: 12 }}>{entry.source}</span>
|
||||||
|
{entry.builtIn && (
|
||||||
|
<span className="badge success" style={{ fontSize: 11 }} title="Загружается автоматически при включённом RU direct">встроен</span>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
<div style={{ fontSize: 13, marginTop: 2, color: 'var(--text)' }}>{entry.description}</div>
|
<div style={{ fontSize: 13, marginTop: 2, color: 'var(--text)' }}>{entry.description}</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -423,26 +428,6 @@ function CatalogEntry({ entry, added, busy, onAdd, onLookup }) {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
{open && (
|
|
||||||
<div style={{ marginTop: 10, paddingTop: 10, borderTop: '1px solid var(--border)' }}>
|
|
||||||
<div style={{ fontSize: 12, marginBottom: 6 }}>
|
|
||||||
<span className="muted">Примеры содержимого: </span>
|
|
||||||
{entry.examples.map((ex, i) => (
|
|
||||||
<span key={i}>
|
|
||||||
<code style={{ background: 'var(--bg-muted)', borderRadius: 3, padding: '1px 5px', fontSize: 11 }}>{ex}</code>
|
|
||||||
{i < entry.examples.length - 1 ? ' ' : ''}
|
|
||||||
</span>
|
|
||||||
))}
|
|
||||||
</div>
|
|
||||||
<div style={{ fontSize: 12 }}>
|
|
||||||
<span className="muted">Рекомендуемый outbound: </span>
|
|
||||||
<span>{entry.use}</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
function RuleSetsCard({ pushToast }) {
|
function RuleSetsCard({ pushToast }) {
|
||||||
const [ruleSets, setRuleSets] = useState([]);
|
const [ruleSets, setRuleSets] = useState([]);
|
||||||
@@ -513,6 +498,7 @@ function RuleSetsCard({ pushToast }) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
<>
|
||||||
<div className="card">
|
<div className="card">
|
||||||
<div className="card-header">
|
<div className="card-header">
|
||||||
<h2>Источники (rule-sets)</h2>
|
<h2>Источники (rule-sets)</h2>
|
||||||
@@ -607,6 +593,7 @@ function RuleSetsCard({ pushToast }) {
|
|||||||
onClose={() => setLookup(null)}
|
onClose={() => setLookup(null)}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user