Some checks failed
Windows project source guards / test (push) Failing after 1m8s
`proxy-dns` был DoH к 8.8.8.8/1.1.1.1/9.9.9.9 через outbound `proxy`. Узел перенаправляет на свой resolver только DNS на порт 53, а зашифрованный запрос проходит мимо: клиент получал настоящий origin управляемого имени и шёл к нему через тот же узел, получая региональный отказ. Через Hysteria 2 sing-box отдаёт ядру уже готовый IP, поэтому подменить адрес на узле было нечем. `proxy-dns` теперь перебирает два транспорта до resolver'а узла: udp, затем tcp для сетей, где UDP через прокси не проходит. Прежний тихий откат на `bootstrap-dns` убран — после шестисекундного таймаута он уводил резолв наружу из туннеля. `bootstrap-dns` и `direct-doh` не тронуты: они поднимают туннель и обязаны пережить подмену DNS провайдером. Точечный отказ DoT на 853 возвращает приложения на 53, который перехватывает `hijack-dns`. Встроенный DoH приложений на 443 перехвату не поддаётся — это записано в docs/sing-box/runtime-config.md. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
342 lines
7.3 KiB
JSON
342 lines
7.3 KiB
JSON
{
|
|
"log": {
|
|
"level": "warn",
|
|
"timestamp": true
|
|
},
|
|
"inbounds": [
|
|
{
|
|
"type": "tun",
|
|
"tag": "tun-in",
|
|
"interface_name": "xftun",
|
|
"address": [
|
|
"172.19.0.1/30"
|
|
],
|
|
"auto_route": true,
|
|
"strict_route": false,
|
|
"stack": "mixed"
|
|
}
|
|
],
|
|
"outbounds": [
|
|
{
|
|
"type": "direct",
|
|
"tag": "proxy"
|
|
},
|
|
{
|
|
"type": "direct",
|
|
"tag": "direct",
|
|
"domain_resolver": "bootstrap-dns"
|
|
},
|
|
{
|
|
"type": "block",
|
|
"tag": "block"
|
|
}
|
|
],
|
|
"route": {
|
|
"auto_detect_interface": true,
|
|
"default_domain_resolver": "proxy-dns",
|
|
"rule_set": [
|
|
{
|
|
"type": "local",
|
|
"tag": "geosite-ru-blocked",
|
|
"format": "binary",
|
|
"path": "rule-set/geosite-ru-blocked.srs"
|
|
},
|
|
{
|
|
"type": "local",
|
|
"tag": "geoip-ru-blocked",
|
|
"format": "binary",
|
|
"path": "rule-set/geoip-ru-blocked.srs"
|
|
},
|
|
{
|
|
"type": "local",
|
|
"tag": "geosite-category-ru",
|
|
"format": "binary",
|
|
"path": "rule-set/geosite-category-ru.srs"
|
|
},
|
|
{
|
|
"type": "local",
|
|
"tag": "geoip-ru",
|
|
"format": "binary",
|
|
"path": "rule-set/geoip-ru.srs"
|
|
}
|
|
],
|
|
"rules": [
|
|
{
|
|
"action": "sniff"
|
|
},
|
|
{
|
|
"protocol": "dns",
|
|
"action": "hijack-dns"
|
|
},
|
|
{
|
|
"network": "tcp",
|
|
"port": 853,
|
|
"action": "reject",
|
|
"method": "default"
|
|
},
|
|
{
|
|
"domain_suffix": [
|
|
"mobileproxy.passport.yandex.net",
|
|
"relay-api.eu.2gis.com",
|
|
"api.ipify.org",
|
|
"checkip.amazonaws.com",
|
|
"ifconfig.me",
|
|
"ip.mail.ru",
|
|
"ipv4-internet.yandex.net",
|
|
"ipv6-internet.yandex.net",
|
|
"trace-flow.ru",
|
|
"api.oneme.ru",
|
|
"vk-analytics.ru",
|
|
"apptracer.ru"
|
|
],
|
|
"action": "route",
|
|
"outbound": "block"
|
|
},
|
|
{
|
|
"process_name": [
|
|
"Яндекс Музыка.exe",
|
|
"yandexmusic.exe"
|
|
],
|
|
"action": "route",
|
|
"outbound": "direct"
|
|
},
|
|
{
|
|
"domain_suffix": [
|
|
"gov.ru",
|
|
"government.ru",
|
|
"kremlin.ru",
|
|
"gosuslugi.ru",
|
|
"mil.ru",
|
|
"fsb.ru",
|
|
"sudrf.ru",
|
|
"sledcom.ru",
|
|
"cikrf.ru",
|
|
"mos.ru",
|
|
"xn--b1aew.xn--p1ai",
|
|
"2gis.com",
|
|
"2gis.ru",
|
|
"alfabank.com",
|
|
"alfabank.ru",
|
|
"avito.ru",
|
|
"clickstream.ru",
|
|
"dzen.ru",
|
|
"kinopoisk.ru",
|
|
"mail.ru",
|
|
"max.ru",
|
|
"megafon.ru",
|
|
"megamarket.ru",
|
|
"mironline.ru",
|
|
"mts.ru",
|
|
"my.com",
|
|
"mytracker.ru",
|
|
"nspk.ru",
|
|
"ok.ru",
|
|
"odnoklassniki.ru",
|
|
"oneme.ru",
|
|
"ozon.ru",
|
|
"privetmir.ru",
|
|
"rutube.ru",
|
|
"rustore.ru",
|
|
"samokat.ru",
|
|
"sber.ru",
|
|
"sberbank.com",
|
|
"sberbank.ru",
|
|
"sbrf.ru",
|
|
"tbank.ru",
|
|
"tinkoff.ru",
|
|
"userapi.com",
|
|
"vtb.ru",
|
|
"vk.com",
|
|
"vk.ru",
|
|
"vkvideo.ru",
|
|
"wb.ru",
|
|
"wildberries.ru",
|
|
"ya.ru",
|
|
"yandex.com",
|
|
"yandex.net",
|
|
"yandex.ru",
|
|
"yastat.net",
|
|
"yastatic.net",
|
|
"bankdomrf.ru",
|
|
"domrfbank.ru",
|
|
"gazprombank.ru",
|
|
"gazprompay.ru",
|
|
"gpb.ru",
|
|
"halvacard.ru",
|
|
"home.bank",
|
|
"homecredit.ru",
|
|
"mkb.ru",
|
|
"psbank.ru",
|
|
"raif.ru",
|
|
"raiffeisen.ru",
|
|
"raiffeisenbank.ru",
|
|
"rosbank.ru",
|
|
"rshb.ru",
|
|
"sovcombank.ru",
|
|
"unicredit.ru",
|
|
"unicreditbank.ru",
|
|
"akbars.ru",
|
|
"bspb.ru",
|
|
"tochka.com",
|
|
"yoomoney.ru",
|
|
"aliexpress.ru",
|
|
"kuper.ru",
|
|
"lamoda.ru",
|
|
"magnitmarket.ru",
|
|
"youla.ru",
|
|
"beeline.ru",
|
|
"rostelecom.ru",
|
|
"rt.ru",
|
|
"t2.ru"
|
|
],
|
|
"action": "route",
|
|
"outbound": "direct"
|
|
},
|
|
{
|
|
"domain_suffix": [
|
|
"loopy.ru",
|
|
"championat.com"
|
|
],
|
|
"action": "route",
|
|
"outbound": "direct"
|
|
},
|
|
{
|
|
"domain_suffix": [
|
|
"4pda.to",
|
|
"zapret.moe"
|
|
],
|
|
"action": "route",
|
|
"outbound": "proxy"
|
|
},
|
|
{
|
|
"rule_set": [
|
|
"geosite-ru-blocked",
|
|
"geoip-ru-blocked"
|
|
],
|
|
"action": "route",
|
|
"outbound": "proxy"
|
|
},
|
|
{
|
|
"rule_set": [
|
|
"geosite-category-ru",
|
|
"geoip-ru"
|
|
],
|
|
"action": "route",
|
|
"outbound": "direct"
|
|
},
|
|
{
|
|
"process_path_regex": [
|
|
"(?i)^[A-Z]:\\\\Users\\\\[^\\\\]+\\\\AppData\\\\Local\\\\Discord\\\\.*(?:Discord|Update)\\.exe$"
|
|
],
|
|
"outbound": "proxy"
|
|
},
|
|
{
|
|
"process_name": [
|
|
"chrome.exe",
|
|
"firefox.exe",
|
|
"waterfox.exe",
|
|
"librewolf.exe",
|
|
"msedge.exe",
|
|
"opera.exe",
|
|
"brave.exe",
|
|
"vivaldi.exe",
|
|
"browser.exe",
|
|
"Spotify.exe",
|
|
"Vesktop.exe"
|
|
],
|
|
"outbound": "proxy"
|
|
}
|
|
],
|
|
"final": "direct"
|
|
},
|
|
"dns": {
|
|
"servers": [
|
|
{
|
|
"type": "udp",
|
|
"tag": "vpn-node-dns-udp",
|
|
"server": "8.8.8.8",
|
|
"server_port": 53,
|
|
"detour": "proxy"
|
|
},
|
|
{
|
|
"type": "tcp",
|
|
"tag": "vpn-node-dns-tcp",
|
|
"server": "8.8.8.8",
|
|
"server_port": 53,
|
|
"detour": "proxy"
|
|
},
|
|
{
|
|
"type": "https",
|
|
"tag": "direct-doh-google",
|
|
"server": "8.8.8.8",
|
|
"path": "/dns-query",
|
|
"tls": {
|
|
"enabled": true,
|
|
"server_name": "dns.google"
|
|
}
|
|
},
|
|
{
|
|
"type": "https",
|
|
"tag": "direct-doh-cloudflare",
|
|
"server": "1.1.1.1",
|
|
"path": "/dns-query",
|
|
"tls": {
|
|
"enabled": true,
|
|
"server_name": "cloudflare-dns.com"
|
|
}
|
|
},
|
|
{
|
|
"type": "https",
|
|
"tag": "direct-doh-quad9",
|
|
"server": "9.9.9.9",
|
|
"path": "/dns-query",
|
|
"tls": {
|
|
"enabled": true,
|
|
"server_name": "dns.quad9.net"
|
|
}
|
|
},
|
|
{
|
|
"type": "fallback",
|
|
"tag": "direct-doh",
|
|
"servers": [
|
|
"direct-doh-google",
|
|
"direct-doh-cloudflare",
|
|
"direct-doh-quad9"
|
|
],
|
|
"strategy": "parallel",
|
|
"timeout": "3s"
|
|
},
|
|
{
|
|
"type": "local",
|
|
"tag": "local-system-dns",
|
|
"prefer_go": true
|
|
},
|
|
{
|
|
"type": "fallback",
|
|
"tag": "bootstrap-dns",
|
|
"servers": [
|
|
"direct-doh",
|
|
"local-system-dns"
|
|
],
|
|
"strategy": "sequential",
|
|
"timeout": "4s"
|
|
},
|
|
{
|
|
"type": "fallback",
|
|
"tag": "proxy-dns",
|
|
"servers": [
|
|
"vpn-node-dns-udp",
|
|
"vpn-node-dns-tcp"
|
|
],
|
|
"strategy": "sequential",
|
|
"timeout": "6s"
|
|
}
|
|
],
|
|
"final": "proxy-dns"
|
|
},
|
|
"experimental": {
|
|
"cache_file": {
|
|
"enabled": true
|
|
}
|
|
}
|
|
}
|