У меня проблема при подключении к моему xray серве...
Created on: October 14, 2025
Answered using GPT-5 Thinking by Chat01
Created on: October 14, 2025
Answered using GPT-5 Thinking by Chat01
У меня проблема при подключении к моему xray серверу. Клиент sing-box, система linux.
Текущая настройка в система для DNS
DNS over sing box
127.0.0.1:53
dnsmasq
примет запрос → форвардит в sing-box (на нестандартный порт, например 1053
)Провайдер при этом увидит только TLS-трафик к серверу, но не исходные DNS-запросы.
Отключили системный резолвер
В /etc/NetworkManager/NetworkManager.conf
добавили:
ini[main] dns=none
Перезапустили NetworkManager:
bashsudo systemctl restart NetworkManager
Настроили dnsmasq
как локальный DNS-stub
В /etc/dnsmasq.conf
прописали:
ini# слушаем только локальный интерфейс listen-address=127.0.0.1 # жёстко привязывает сокет к конкретному IP/интерфейсу, указанному в listen-address. # Это критически важно, потому что мы хотим, чтобы dnsmasq строго слушал только 127.0.0.1, # а не случайно открыл DNS наружу (на enp2s0 или tun0). bind-interfaces # не читать /etc/resolv.conf (чтобы случайно не использовать DNS провайдера) no-resolv # пересылаем ВСЕ запросы в sing-box (локальный порт 1053) server=127.0.0.1#1053 # не пересылать ненужные PTR-запросы наружу bogus-priv # блокируем IPv6-запросы (по желанию, если нужно) # filter-aaaa
Перезапустили сервис:
bashsudo systemctl enable --now dnsmasq
Указали в системе использовать только dnsmasq
В /etc/resolv.conf
:
ininameserver 127.0.0.1
Если стоит resolvconf
или systemd-resolved
→ закрепили этот файл через chattr
:
bashsudo chattr +i /etc/resolv.conf
Проверка
Локальные запросы:
bashdig @127.0.0.1 google.com
должны уходить в 127.0.0.1#1053
(sing-box).
На реальном интерфейсе (enp2s0
) нет трафика на порт 53:
bashsudo tcpdump -i enp2s0 -n port 53
Важно! Раньше с этой конфигурацией всё работало, но перестало без видимых причин.
Вот какие ошибки получаю.
+0300 2025-10-14 21:48:59 INFO [1820780125 0ms] inbound/direct[local-dns-in]: inbound packet connection from 127.0.0.1:41268
+0300 2025-10-14 21:48:59 INFO [1820780125 0ms] inbound/direct[local-dns-in]: inbound packet connection to 127.0.0.1:53
+0300 2025-10-14 21:48:59 DEBUG [1820780125 0ms] router: match[0] => sniff
+0300 2025-10-14 21:48:59 DEBUG [1820780125 0ms] router: sniffed packet protocol: dns
+0300 2025-10-14 21:48:59 DEBUG [1820780125 0ms] router: match[1] => resolve
+0300 2025-10-14 21:48:59 DEBUG [1820780125 0ms] router: match[2] protocol=dns || port=53 => hijack-dns
+0300 2025-10-14 21:48:59 DEBUG [1820780125 0ms] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 21:48:59 INFO [2575630200 0ms] inbound/direct[local-dns-in]: inbound packet connection from 127.0.0.1:42907
+0300 2025-10-14 21:48:59 INFO [2575630200 0ms] inbound/direct[local-dns-in]: inbound packet connection to 127.0.0.1:53
+0300 2025-10-14 21:48:59 DEBUG [2575630200 0ms] router: match[0] => sniff
+0300 2025-10-14 21:48:59 DEBUG [2575630200 0ms] router: sniffed packet protocol: dns
+0300 2025-10-14 21:48:59 DEBUG [2575630200 0ms] router: match[1] => resolve
+0300 2025-10-14 21:48:59 DEBUG [2575630200 0ms] router: match[2] protocol=dns || port=53 => hijack-dns
+0300 2025-10-14 21:48:59 DEBUG [123803605 20.2s] dns: exchange www.youtube.com. IN A
+0300 2025-10-14 21:48:59 DEBUG [2575630200 0ms] dns: exchange www.youtube.com. IN AAAA
+0300 2025-10-14 21:49:00 DEBUG [2009591431 20.2s] dns: exchange detectportal.firefox.com. IN AAAA
+0300 2025-10-14 21:49:00 DEBUG [3850157977 20.2s] dns: exchange detectportal.firefox.com. IN A
+0300 2025-10-14 21:49:02 DEBUG [3615164628 11.2s] dns: exchange ident.me. IN AAAA
+0300 2025-10-14 21:49:02 DEBUG [1182458267 22.4s] dns: exchange ident.me. IN A
+0300 2025-10-14 21:49:04 INFO [123803605 24.53s] outbound/vless[proxy]: outbound packet connection to 1.1.1.1:53
+0300 2025-10-14 21:49:04 INFO [1182458267 24.19s] outbound/vless[proxy]: outbound packet connection to 1.1.1.1:53
+0300 2025-10-14 21:49:04 ERROR [3430647593 24.53s] dns: exchange failed for www.youtube.com. IN AAAA: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 21:49:04 INFO [4026147774 24.9s] outbound/vless[proxy]: outbound packet connection to 1.1.1.1:53
+0300 2025-10-14 21:49:04 ERROR [123803605 24.53s] dns: exchange failed for www.youtube.com. IN A: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 21:49:04 INFO [2095817429 24.9s] outbound/vless[proxy]: outbound packet connection to 1.1.1.1:53
+0300 2025-10-14 21:49:04 INFO [1239575017 24.9s] outbound/vless[proxy]: outbound packet connection to 1.1.1.1:53
+0300 2025-10-14 21:49:04 ERROR [4026147774 24.9s] dns: exchange failed for example.org. IN A: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 21:49:04 ERROR [1182458267 24.19s] dns: exchange failed for ident.me. IN A: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 21:49:04 INFO [2815120891 24.9s] outbound/vless[proxy]: outbound packet connection to 1.1.1.1:53
+0300 2025-10-14 21:49:04 ERROR [2095817429 24.9s] dns: exchange failed for example.org. IN AAAA: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 21:49:04 INFO [2009591431 24.9s] outbound/vless[proxy]: outbound packet connection to 1.1.1.1:53
+0300 2025-10-14 21:49:04 ERROR [1239575017 24.9s] dns: exchange failed for ipv4only.arpa. IN A: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 21:49:04 ERROR [2815120891 24.9s] dns: exchange failed for ipv4only.arpa. IN AAAA: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 21:49:04 ERROR [2009591431 24.9s] dns: exchange failed for detectportal.firefox.com. IN AAAA: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 21:49:04 INFO [3850157977 24.9s] outbound/vless[proxy]: outbound packet connection to 1.1.1.1:53
+0300 2025-10-14 21:49:04 ERROR [3850157977 24.9s] dns: exchange failed for detectportal.firefox.com. IN A: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 21:49:04 INFO [1586948756 25.8s] outbound/vless[proxy]: outbound packet connection to 1.1.1.1:53
+0300 2025-10-14 21:49:04 INFO [1468295140 25.0s] outbound/vless[proxy]: outbound packet connection to 1.1.1.1:53
+0300 2025-10-14 21:49:04 ERROR [1586948756 25.8s] dns: exchange failed for ident.me. IN AAAA: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 21:49:04 INFO [1586948756 25.8s] outbound/vless[proxy]: outbound packet connection to 1.1.1.1:53
+0300 2025-10-14 21:49:04 INFO [1553874406 25.0s] outbound/vless[proxy]: outbound packet connection to 1.1.1.1:53
+0300 2025-10-14 21:49:04 ERROR [1586948756 25.8s] dns: exchange failed for ident.me. IN AAAA: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 21:49:04 ERROR [1468295140 25.0s] dns: exchange failed for ping.manjaro.org. IN A: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 21:49:04 INFO [1468295140 25.0s] outbound/vless[proxy]: outbound packet connection to 1.1.1.1:53
+0300 2025-10-14 21:49:04 ERROR [1553874406 25.0s] dns: exchange failed for ping.manjaro.org. IN AAAA: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 21:49:04 INFO [1468295140 25.0s] outbound/vless[proxy]: outbound packet connection to 1.1.1.1:53
+0300 2025-10-14 21:49:04 INFO [1468295140 25.0s] outbound/vless[proxy]: outbound packet connection to 1.1.1.1:53
+0300 2025-10-14 21:49:04 ERROR [1468295140 25.0s] dns: exchange failed for ping.manjaro.org. IN A: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 21:49:04 ERROR [1468295140 25.0s] dns: exchange failed for ping.manjaro.org. IN A: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 21:49:04 INFO [1468295140 25.0s] outbound/vless[proxy]: outbound packet connection to 1.1.1.1:53
+0300 2025-10-14 21:49:04 ERROR [1468295140 25.0s] dns: exchange failed for ping.manjaro.org. IN A: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 21:49:04 ERROR [1468295140 25.0s] dns: exchange failed for ping.manjaro.org. IN A: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 21:49:04 INFO [1468295140 25.0s] outbound/vless[proxy]: outbound packet connection to 1.1.1.1:53
+0300 2025-10-14 21:49:04 ERROR [1468295140 25.0s] dns: exchange failed for ping.manjaro.org. IN A: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 21:49:04 INFO [1468295140 25.0s] outbound/vless[proxy]: outbound packet connection to 1.1.1.1:53
+0300 2025-10-14 21:49:04 INFO [1468295140 25.0s] outbound/vless[proxy]: outbound packet connection to 1.1.1.1:53
+0300 2025-10-14 21:49:04 INFO [1468295140 25.0s] outbound/vless[proxy]: outbound packet connection to 1.1.1.1:53
+0300 2025-10-14 21:49:04 INFO [3615164628 13.17s] outbound/vless[proxy]: outbound packet connection to 1.1.1.1:53
+0300 2025-10-14 21:49:04 INFO [1553874406 25.0s] outbound/vless[proxy]: outbound packet connection to 1.1.1.1:53
+0300 2025-10-14 21:49:04 ERROR [1468295140 25.0s] dns: exchange failed for ping.manjaro.org. IN A: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 21:49:04 ERROR [1468295140 25.0s] dns: exchange failed for ping.manjaro.org. IN A: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 21:49:04 ERROR [3615164628 13.17s] dns: exchange failed for ident.me. IN AAAA: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 21:49:04 ERROR [1468295140 25.0s] dns: exchange failed for ping.manjaro.org. IN A: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 21:49:04 DEBUG [2575630200 5.0s] dns: exchange www.youtube.com. IN AAAA
+0300 2025-10-14 21:49:04 INFO [2008844448 0ms] inbound/direct[local-dns-in]: inbound packet connection from 127.0.0.1:57708
+0300 2025-10-14 21:49:04 INFO [2008844448 0ms] inbound/direct[local-dns-in]: inbound packet connection to 127.0.0.1:53
+0300 2025-10-14 21:49:04 DEBUG [2008844448 0ms] router: match[0] => sniff
+0300 2025-10-14 21:49:04 DEBUG [2008844448 0ms] router: sniffed packet protocol: dns
+0300 2025-10-14 21:49:04 DEBUG [2008844448 0ms] router: match[1] => resolve
+0300 2025-10-14 21:49:04 DEBUG [2008844448 0ms] router: match[2] protocol=dns || port=53 => hijack-dns
Похоже, у тебя сломалось не «DNS через dnsmasq/sing-box», а сам выезд в интернет через прокси: sing-box не может достучаться до твоего VLESS-сервера.
local-dns-in
на 127.0.0.1:53:
⇒ Сейчас sing-box слушает порт 53, а не 1053.textinbound packet connection to 127.0.0.1:53 router: protocol=dns => hijack-dns
⇒ TCP-подключение к твоему VLESS-серверу 85.192.63.245:443 из клиента не устанавливается (таймаут на соединении). Это либо:textoutbound/vless[proxy]: ... to 1.1.1.1:53 dns: ... dial tcp 85.192.63.245:443: i/o timeout
Из-за этого все DNS-обмены «через прокси» падают.
bash# простой коннект nc -vz 85.192.63.245 443 # трассировка до узла mtr -rwzc 5 85.192.63.245 # попытка TCP SYN (увидишь хотя бы SYN/ACK/RST) sudo hping3 -S -p 443 -c 3 85.192.63.245
bashsudo ss -lunpt | egrep '(:53|:1053)\b' systemctl status dnsmasq systemctl status systemd-resolved
dnsmasq
тоже пытается занять 53 — будет конфликт. Либо переведи sing-box на 1053, либо в dnsmasq.conf
укажи server=127.0.0.1#53
. Главное — синхронизируй порт.bash# Xray/ sing-box на сервере sudo systemctl status xray sudo journalctl -u xray -n 100 --no-pager # порт и фаервол sudo ss -ltnup 'sport = :443' sudo ufw status verbose || sudo iptables -S | grep 443
Убедись, что:
Важно: твой лог — таймаут на TCP-коннекте. Это происходит до TLS/REALITY-рукопожатия. Значит, проблема с сетевой доступностью (IP/порт/фаервол/блок), а не с несовпадением ключей/shortId.
Пока чинится доступ к серверу, можно временно дать DNS ходить в обход прокси (понимая риски утечки DNS к провайдеру):
Вариант A (быстро через dnsmasq):
ini# /etc/dnsmasq.conf (временно) no-resolv server=1.1.1.1 # или DoT через stubby/unbound, если хочешь шифрование без прокси
Перезапусти:
bashsudo systemctl restart dnsmasq
Вариант B (через sing-box):
В dns.servers[]
для одного апстрима поставь "detour": "direct"
, а dns.final
укажи на него:
json"dns": { "servers": [ { "tag": "cf-direct", "address": "1.1.1.1", "strategy": "prefer_ipv4", "detour": "direct" }, { "tag": "cf-proxy", "address": "1.1.1.1", "strategy": "prefer_ipv4", "detour": "proxy" } ], "final": "cf-direct" }
Потом вернёшь на cf-proxy
, когда VLESS оживёт.
sing-box (фрагмент)
json"inbounds": [ { "type": "direct", "tag": "local-dns-in", "listen": "127.0.0.1", "listen_port": 1053, "sniff": true } ], "route": { "rules": [ { "protocol": "dns", "outbound": "hijack-dns" } ] }
/etc/dnsmasq.conf
inilisten-address=127.0.0.1 bind-interfaces no-resolv server=127.0.0.1#1053 bogus-priv # filter-aaaa # если нужно
Тогда отключи dnsmasq
, освободи 53 от других демонов и укажи в /etc/resolv.conf
:
nameserver 127.0.0.1
(и закрепи chattr +i
, если требуется).
nc -vz 85.192.63.245 443
и mtr
— пойми, доступен ли сервер с клиента.direct
, чтобы не быть «слепым».Если хочешь, скидывай свои фрагменты конфигов sing-box (dns, inbounds, outbounds[proxy]) и вывод трёх команд:
textnc -vz 85.192.63.245 443 sudo ss -ltnup 'sport = :443' sudo systemctl status xray
— подскажу точечно, что именно править.
Вот мой конфиг
{
"log": {
"level": "debug",
"timestamp": true
},
"dns": {
"servers": [
{
"tag": "dns_proxy",
"type": "udp",
"server": "9.9.9.9",
"detour": "proxy"
}
],
"rules": [],
"final": "dns_proxy"
},
"inbounds": [
{
"type": "tun",
"tag": "tun-in",
"interface_name": "singtun0",
"address": [
"172.18.0.1/30"
],
"mtu": 1500,
"auto_route": true,
"strict_route": true,
"route_exclude_address": [
"192.168.0.0/16",
"10.0.0.0/8",
"172.16.0.0/12"
]
},
{
"type": "direct",
"tag": "local-dns-in",
"listen": "127.0.0.1",
"listen_port": 1053,
"override_port": 53
}
],
"outbounds": [
{
"type": "direct",
"tag": "direct"
},
{
"type": "vless",
"tag": "proxy",
"server": "85.192.63.245",
"server_port": 443,
"uuid": "--------------------------",
"flow": "xtls-rprx-vision",
"tls": {
"enabled": true,
"server_name": "github.com",
"utls": {
"enabled": true,
"fingerprint": "chrome"
},
"reality": {
"enabled": true,
"public_key": "--------------",
"short_id": "------"
}
}
},
{
"type": "block",
"tag": "block"
}
],
"route": {
"rules": [
{ "action": "sniff" },
{ "protocol": "dns", "action": "hijack-dns" },
{ "inbound": "local-dns-in", "outbound": "dns_proxy" },
{
"type": "logical",
"mode": "or",
"rules": [
{ "port": 853 },
{ "network": "udp", "port": 443 },
{ "protocol": "stun" }
],
"action": "reject",
"method": "default"
},
{ "ip_is_private": true, "outbound": "direct" },
{ "domain": ["vd.aq.ru"], "outbound": "direct" },
{ "domain": ["www.speedtest.net"], "outbound": "direct" },
{ "domain": ["www.lk.tltinet.ru"], "outbound": "direct" }
],
"final": "proxy",
"auto_detect_interface": true
}
}
на сервере:
kira@Bifrst:/xray/simple-xray-core sudo ss -ltnup 'sport = :443'/xray/simple-xray-core$
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
tcp LISTEN 0 4096 *:443 : users:(("xray",pid=703,fd=4))
kira@Bifrst:
kira@Bifrst:~/xray/simple-xray-core$ sudo systemctl status xray
[sudo] password for kira:
● xray.service - Xray Service
Loaded: loaded (/etc/systemd/system/xray.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/xray.service.d
└─10-donot_touch_single_conf.conf
Active: active (running) since Mon 2025-10-13 23:05:20 MSK; 23h ago
Docs: https://github.com/xtls
Main PID: 703 (xray)
Tasks: 7 (limit: 2291)
Memory: 63.8M
CPU: 19.593s
CGroup: /system.slice/xray.service
└─703 /usr/local/bin/xray run -config /usr/local/etc/xray/config.json
Oct 13 23:05:20 Bifrst.aeza.network systemd[1]: Started Xray Service.
Oct 13 23:05:21 Bifrst.aeza.network xray[703]: Xray 25.9.11 (Xray, Penetrates Everything.) 3edfb0e (go1.25.1 linux/amd64)
Oct 13 23:05:21 Bifrst.aeza.network xray[703]: A unified platform for anti-censorship.
Oct 13 23:05:21 Bifrst.aeza.network xray[703]: 2025/10/13 23:05:21.296093 [Info] infra/conf/serial: Reading config: &{Name:/usr/local/etc/xray/config.json Format:json}
Oct 13 23:05:22 Bifrst.aeza.network xray[703]: 2025/10/13 23:05:22.191799 [Warning] core: Xray 25.9.11 started
на моей linux машине:
nc -vz 85.192.63.245 443
Connection to 85.192.63.245 443 port [tcp/https] succeeded!
Спасибо за конфиг и проверки — картина сложилась.
Главное: у тебя TUN (auto_route:true, strict_route:true
) + final: "proxy"
. Без явного «байпаса» сам сервер (85.192.63.245:443
) уходит… через тот же прокси/туннель. Пока туннель не поднят, трафик до сервера зацикливается и connect()
ловит таймаут — ровно то, что было в логах (dial tcp 85.192.63.245:443: i/o timeout
). nc -vz
сейчас успешен, потому что он шёл прямо по системному маршруту (либо в момент проверки TUN был неактивен/маршрут уже выправился). Чтобы это не «плавало», сервер надо исключить из туннеля и отправлять DIRECT всегда.
Плюс у тебя в dns.servers[]
объект с полями type/server
, а в sing-box используется поле address
(а протокол задают префиксом udp://
, tls://
, https://
). Это не критично для объяснения таймаутов к серверу, но лучше поправить, чтобы DNS-конфиг был корректным и предсказуемым.
inbounds[0].tun.route_exclude_address
добавь IP:json"route_exclude_address": [ "192.168.0.0/16", "10.0.0.0/8", "172.16.0.0/12", "85.192.63.245/32" ]
route.rules
выше правила final
добавь принудительный DIRECT:json{ "ip_cidr": ["85.192.63.245/32"], "outbound": "direct" }
json"dns": { "servers": [ { "tag": "dns_proxy", "address": "udp://9.9.9.9", "strategy": "prefer_ipv4", "detour": "proxy" }, { "tag": "dns_direct", "address": "tls://1.1.1.1:853", "strategy": "prefer_ipv4", "detour": "direct" } ], "rules": [], "final": "dns_proxy" }
Если нужно «временно оживить» резолв при падении прокси — замени
final
на"dns_direct"
и верни назад, когда VLESS оживёт.
override_port
override_port: 53
тут не нужен и только путает логи.json{ "type": "direct", "tag": "local-dns-in", "listen": "127.0.0.1", "listen_port": 1053 }
dnsmasq по-прежнему форвардит на 127.0.0.1#1053
— всё сойдётся.
ip_cidr 85.192.63.245/32 -> direct
стоит выше логического REJECT и выше любых общих правил, чтобы точно сработало:json"route": { "rules": [ { "action": "sniff" }, { "protocol": "dns", "action": "hijack-dns" }, { "inbound": "local-dns-in", "outbound": "dns_proxy" }, { "ip_cidr": ["85.192.63.245/32"], "outbound": "direct" }, { "type": "logical", "mode": "or", "rules": [ { "port": 853 }, { "network": "udp", "port": 443 }, { "protocol": "stun" } ], "action": "reject", "method": "default" }, { "ip_is_private": true, "outbound": "direct" }, { "domain": ["vd.aq.ru"], "outbound": "direct" }, { "domain": ["www.speedtest.net"], "outbound": "direct" }, { "domain": ["www.lk.tltinet.ru"], "outbound": "direct" } ], "final": "proxy", "auto_detect_interface": true }
bash# 1) Валидация конфига sing-box check -c /путь/к/config.json # 2) Перезапуск sudo systemctl restart sing-box # 3) Кто слушает DNS-порты sudo ss -lunpt | egrep '(:53|:1053)\b' systemctl status dnsmasq # 4) Локальный DNS через цепочку dig @127.0.0.1 -p 53 example.org +time=2 +tries=1 dig @127.0.0.1 -p 1053 example.org +time=2 +tries=1 # если напрямую в sing-box # 5) Нет ли утечек DNS наружу: sudo tcpdump -i enp2s0 -n port 53
Если после этих правок ещё увидишь «dial tcp … i/o timeout», пришли 20–30 строк свежих логов sing-box
(уровень debug) сразу после старта и результат:
ip route get 85.192.63.245
— проверим, что маршрут до сервера действительно идёт в обход singtun0
.
Отдельно: на сервере Xray активен и слушает
*:443
, UFW выключен — это хорошо. Для REALITY/Vision важно, чтобыserver_name
на клиенте (github.com
) входил вserverNames
на сервере, иpublic_key/shortId
совпадали, но при таймауте connect() до этого этапа дело не доходит — сперва нужно стабильно добираться до85.192.63.245:443
без попыток завернуть этот трафик в туннель.
sing-box check -c sing_box_e1ectr0n.json
WARN[0000] legacy DNS servers is deprecated in sing-box 1.12.0 and will be removed in sing-box 1.14.0, checkout documentation for migration: https://sing-box.sagernet.org/migration/#migrate-to-new-dns-server-formats
WARN[0000] missingroute.default_domain_resolver
ordomain_resolver
in dial fields is deprecated in sing-box 1.12.0 and will be removed in sing-box 1.14.0, checkout documentation for migration: https://sing-box.sagernet.org/migration/#migrate-outbound-dns-rule-items-to-domain-resolver
~/opt/xray_conf
curl ident.me
curl: (56) Recv failure: Соединение разорвано другой стороной
~/opt/xray_conf 15s
sudo ss -lunpt | egrep '(:53|:1053)\b'
udp UNCONN 0 0 127.0.0.1:1053 0.0.0.0:* users:(("sing-box",pid=399443,fd=9))
udp UNCONN 0 0 127.0.0.1:53 0.0.0.0:* users:(("dnsmasq",pid=350877,fd=4))
tcp LISTEN 0 32 127.0.0.1:53 0.0.0.0:* users:(("dnsmasq",pid=350877,fd=5))
tcp LISTEN 0 4096 127.0.0.1:1053 0.0.0.0:* users:(("sing-box",pid=399443,fd=8))
~/opt/xray_conf
dig @127.0.0.1 -p 53 example.org +time=2 +tries=1
; <<>> DiG 9.20.13 <<>> @127.0.0.1 -p 53 example.org +time=2 +tries=1
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53304
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;example.org. IN A
;; ANSWER SECTION:
example.org. 104 IN A 23.215.0.133
example.org. 104 IN A 23.220.75.235
example.org. 104 IN A 23.215.0.132
example.org. 104 IN A 23.220.75.238
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Tue Oct 14 22:29:37 MSK 2025
;; MSG SIZE rcvd: 104
~/opt/xray_conf
dig @127.0.0.1 -p 1053 example.org +time=2 +tries=1
; <<>> DiG 9.20.13 <<>> @127.0.0.1 -p 1053 example.org +time=2 +tries=1
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41098
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; MBZ: 0x0052, udp: 1232
; PADDING: (360 bytes)
;; QUESTION SECTION:
;example.org. IN A
;; ANSWER SECTION:
example.org. 82 IN A 23.215.0.133
example.org. 82 IN A 23.220.75.235
example.org. 82 IN A 23.215.0.132
example.org. 82 IN A 23.220.75.238
;; Query time: 1 msec
;; SERVER: 127.0.0.1#1053(127.0.0.1) (UDP)
;; WHEN: Tue Oct 14 22:29:59 MSK 2025
;; MSG SIZE rcvd: 512
~/opt/xray_conf
sudo tcpdump -i enp2s0 -n port 53
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on enp2s0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
22:30:27.465990 IP 192.168.0.85.48015 > 8.8.8.8.53: 1013+ A? chat01.ai. (27)
22:30:27.465997 IP 192.168.0.85.48015 > 8.8.8.8.53: 23796+ AAAA? chat01.ai. (27)
22:30:27.516976 IP 8.8.8.8.53 > 192.168.0.85.48015: 1013 2/0/0 A 8.47.69.6, A 8.6.112.6 (59)
22:30:27.521413 IP 8.8.8.8.53 > 192.168.0.85.48015: 23796 2/0/0 AAAA 2a06:98c1:3123:8000::6, AAAA 2a06:98c1:3122:8000::6 (83)
22:31:06.447757 IP 192.168.0.85.37128 > 8.8.8.8.53: 43195+ A? yandex.ru. (27)
22:31:06.447765 IP 192.168.0.85.37128 > 8.8.8.8.53: 39613+ AAAA? yandex.ru. (27)
22:31:06.489811 IP 8.8.8.8.53 > 192.168.0.85.37128: 43195 3/0/0 A 77.88.55.88, A 5.255.255.77, A 77.88.44.55 (75)
22:31:06.489875 IP 8.8.8.8.53 > 192.168.0.85.37128: 39613 1/0/0 AAAA 2a02:6b8:a::a (55)
^C
8 packets captured
8 packets received by filter
0 packets dropped by kernel
Отличные прогоны! Сейчас видно:
dnsmasq(53) → sing-box(1053)
работает (оба dig
ок).tcpdump
показал прямые пакеты на 8.8.8.8:53
с реального интерфейса enp2s0
.curl ident.me
рвётся — это уже плоскость data-plane через VLESS/REALITY.Ниже — компактный план, который закрывает обе проблемы и убирает предупреждения sing-box check
(миграция DNS-секции).
Заменяй соответствующие куски (секреты не забудь подставить):
json{ "log": { "level": "debug", "timestamp": true }, "dns": { "servers": [ { "tag": "dns_proxy", "address": "https://dns.quad9.net/dns-query", "strategy": "prefer_ipv4", "detour": "proxy" }, { "tag": "dns_direct", "address": "tls://1.1.1.1:853", "strategy": "prefer_ipv4", "detour": "direct" } ], "final": "dns_proxy" }, "inbounds": [ { "type": "tun", "tag": "tun-in", "interface_name": "singtun0", "address": ["172.18.0.1/30"], "mtu": 1500, "auto_route": true, "strict_route": true, "route_exclude_address": [ "192.168.0.0/16", "10.0.0.0/8", "172.16.0.0/12", "85.192.63.245/32" // ВАЖНО: твой сервер всегда в обход туннеля ] }, { "type": "direct", "tag": "local-dns-in", "listen": "127.0.0.1", "listen_port": 1053 } ], "outbounds": [ { "type": "direct", "tag": "direct" }, { "type": "vless", "tag": "proxy", "server": "85.192.63.245", "server_port": 443, "uuid": "YOUR-UUID", "flow": "xtls-rprx-vision", "tls": { "enabled": true, "server_name": "github.com", "utls": { "enabled": true, "fingerprint": "chrome" }, "reality": { "enabled": true, "public_key": "PUBKEY", "short_id": "SHORTID" } } }, { "type": "block", "tag": "block" } ], "route": { "default_domain_resolver": "dns_proxy", // убирает предупреждение о миграции "auto_detect_interface": true, "rules": [ { "action": "sniff" }, { "protocol": "dns", "action": "hijack-dns" }, { "inbound": "local-dns-in", "outbound": "dns_proxy" }, { "ip_cidr": ["85.192.63.245/32"], "outbound": "direct" }, // БАЙПАС до сервера { "type": "logical", "mode": "or", "rules": [ { "port": 853 }, { "network": "udp", "port": 443 }, { "protocol": "stun" } ], "action": "reject", "method": "default" }, { "ip_is_private": true, "outbound": "direct" }, { "domain": ["vd.aq.ru","www.speedtest.net","www.lk.tltinet.ru"], "outbound": "direct" } ], "final": "proxy" } }
Почему это важно:
- Новый формат DNS (
address:
сhttps://
/tls://
) — без деприкаций.- БАЙПАС
85.192.63.245/32
гарантирует, что соединение к серверу никогда не уйдёт в сам туннель.default_domain_resolver
убирает второе предупреждение check.
Даже если какое-то приложение игнорирует resolv.conf
и шлёт на 8.8.8.8, перехватим это локально.
bashsudo nft add table inet dnsredir sudo nft add chain inet dnsredir output '{ type nat hook output priority 0; }' sudo nft add rule inet dnsredir output udp dport 53 redirect to :53 sudo nft add rule inet dnsredir output tcp dport 53 redirect to :53
bashsudo iptables -t nat -A OUTPUT -p udp --dport 53 -j REDIRECT --to-ports 53 sudo iptables -t nat -A OUTPUT -p tcp --dport 53 -j REDIRECT --to-ports 53
Это «пояс с подтяжками»: весь локальный
:53
уходит к твоемуdnsmasq
на 127.0.0.1:53, а тот уже форвардит в sing-box:1053.
Проверь, что в /etc/dnsmasq.conf
действительно есть:
textlisten-address=127.0.0.1 bind-interfaces no-resolv server=127.0.0.1#1053
и нет лишних server=
из /etc/NetworkManager/dnsmasq.d/*.conf
:
bashgrep -R "server=" /etc/dnsmasq* /etc/NetworkManager/dnsmasq.d/ -n || true sudo systemctl restart dnsmasq
bash# Валидация конфига sing-box check -c /путь/к/конфигу.json # Перезапуск sudo systemctl restart sing-box # Должно слушать ровно так: sudo ss -lunpt | egrep '(:53|:1053)\b' # udp 127.0.0.1:53 (dnsmasq), udp/tcp 127.0.0.1:1053 (sing-box) # DNS через цепочку dig @127.0.0.1 example.org +time=2 +tries=1 dig @127.0.0.1 -p 1053 example.org +time=2 +tries=1 # Отсутствие утечек: sudo tcpdump -i enp2s0 -n port 53 # должно быть пусто при обычном резолве
baship route get 85.192.63.245 # Ожидаем dev enp2s0 (или твой физический iface), НЕ singtun0
bashcurl -v https://ident.me/ --max-time 5
Если снова Recv failure
/RST:
flow: "xtls-rprx-vision"
reality
→ private_key
соответствует твоему public_key
на клиенте,short_ids
содержит твой short_id
,server_names
включает github.com
(или поменяй server_name
у клиента на то, что реально разрешено на сервере).В случае именно Vision/REALITY несоответствий в логах sing-box обычно есть явные сообщения (invalid short id / reality handshake failed). Если понадобится — кинь 20–30 строк
sing-box
логов уровняdebug
вокруг попыткиcurl
.
tcpdump
видел 8.8.8.8Какие-то процессы (иногда браузеры/проги, Docker-контейнеры, NetworkManager-скрипты) игнорируют resolv.conf
и бьют на публичные DNS. TUN всё равно должен их перехватывать, но в реальной жизни иногда «проскальзывает». Редирект на уровне хоста (п.2) убивает класс утечек гарантированно.
Если сделаешь правки и всё равно будут сбои — пришли:
ip rule
, ip route show table all | sed -n '1,200p' | sed -n '200,400p'
(или хотя бы ip route get 85.192.63.245
);sing-box
уровня debug
при неудачном curl
.Должно полететь. 🚀
Ошибка сохраняется
+0300 2025-10-14 22:54:28 ERROR [3324043763 20.0s] dns: exchange failed for detectportal.firefox.com. IN A: context deadline exceeded
+0300 2025-10-14 22:54:28 ERROR [3324043763 20.0s] dns: exchange failed for detectportal.firefox.com. IN A: context deadline exceeded
+0300 2025-10-14 22:54:28 ERROR [3324043763 20.0s] dns: exchange failed for detectportal.firefox.com. IN A: context deadline exceeded
+0300 2025-10-14 22:54:28 ERROR [1836561970 20.0s] dns: exchange failed for detectportal.firefox.com. IN AAAA: context deadline exceeded
+0300 2025-10-14 22:54:28 ERROR [1836561970 20.0s] dns: exchange failed for detectportal.firefox.com. IN AAAA: context deadline exceeded
+0300 2025-10-14 22:54:28 ERROR [3324043763 20.2s] dns: exchange failed for detectportal.firefox.com. IN A: context deadline exceeded
+0300 2025-10-14 22:54:28 INFO [3324043763 20.2s] outbound/vless[proxy]: outbound connection to dns.quad9.net:443
+0300 2025-10-14 22:54:28 DEBUG [1836561970 20.2s] dns: exchange detectportal.firefox.com. IN AAAA
+0300 2025-10-14 22:54:28 INFO [1836561970 20.2s] outbound/vless[proxy]: outbound connection to dns.quad9.net:443
+0300 2025-10-14 22:54:28 DEBUG [3324043763 20.3s] dns: exchange detectportal.firefox.com. IN A
+0300 2025-10-14 22:54:28 INFO [3324043763 20.3s] outbound/vless[proxy]: outbound connection to dns.quad9.net:443
+0300 2025-10-14 22:54:29 ERROR [3303497901 20.0s] dns: exchange failed for cdn.ghostery.com. IN A: context deadline exceeded
+0300 2025-10-14 22:54:29 ERROR [1235402463 20.0s] dns: exchange failed for cdn.ghostery.com. IN AAAA: context deadline exceeded
+0300 2025-10-14 22:54:29 ERROR [1235402463 20.1s] dns: exchange failed for cdn.ghostery.com. IN AAAA: context deadline exceeded
+0300 2025-10-14 22:54:29 ERROR [3303497901 20.1s] dns: exchange failed for cdn.ghostery.com. IN A: context deadline exceeded
+0300 2025-10-14 22:54:29 ERROR [1986449171 21.70s] dns: exchange failed for www.youtube.com. IN A: context deadline exceeded
+0300 2025-10-14 22:54:29 INFO [1986449171 21.70s] outbound/vless[proxy]: outbound connection to dns.quad9.net:443
+0300 2025-10-14 22:54:29 DEBUG [226357336 5.0s] dns: exchange www.youtube.com. IN AAAA
+0300 2025-10-14 22:54:29 DEBUG [1986449171 21.71s] dns: exchange www.youtube.com. IN A
+0300 2025-10-14 22:54:29 INFO [1986449171 21.71s] outbound/vless[proxy]: outbound connection to dns.quad9.net:443
+0300 2025-10-14 22:54:29 ERROR [609812009 22.2s] dns: exchange failed for ping.manjaro.org. IN AAAA: context deadline exceeded
+0300 2025-10-14 22:54:29 ERROR [1391471292 22.2s] dns: exchange failed for ping.manjaro.org. IN A: context deadline exceeded
+0300 2025-10-14 22:54:29 INFO [1391471292 22.2s] outbound/vless[proxy]: outbound connection to dns.quad9.net:443
+0300 2025-10-14 22:54:29 INFO [609812009 22.2s] outbound/vless[proxy]: outbound connection to dns.quad9.net:443
+0300 2025-10-14 22:54:29 INFO [609812009 22.2s] outbound/vless[proxy]: outbound connection to dns.quad9.net:443
+0300 2025-10-14 22:54:29 INFO [1391471292 22.2s] outbound/vless[proxy]: outbound connection to dns.quad9.net:443
+0300 2025-10-14 22:54:29 INFO [609812009 22.2s] outbound/vless[proxy]: outbound connection to dns.quad9.net:443
+0300 2025-10-14 22:54:29 INFO [1391471292 22.2s] outbound/vless[proxy]: outbound connection to dns.quad9.net:443
+0300 2025-10-14 22:54:29 INFO [1391471292 22.2s] outbound/vless[proxy]: outbound connection to dns.quad9.net:443
+0300 2025-10-14 22:54:29 INFO [1391471292 22.2s] outbound/vless[proxy]: outbound connection to dns.quad9.net:443
+0300 2025-10-14 22:54:29 INFO [609812009 22.2s] outbound/vless[proxy]: outbound connection to dns.quad9.net:443
+0300 2025-10-14 22:54:29 INFO [609812009 22.2s] outbound/vless[proxy]: outbound connection to dns.quad9.net:443
+0300 2025-10-14 22:54:30 ERROR [634839945 20.0s] dns: exchange failed for ident.me. IN A: context deadline exceeded
+0300 2025-10-14 22:54:30 ERROR [634839945 20.0s] dns: exchange failed for ident.me. IN A: context deadline exceeded
+0300 2025-10-14 22:54:30 ERROR [634839945 20.18s] dns: exchange failed for ident.me. IN A: context deadline exceeded
+0300 2025-10-14 22:54:30 INFO [634839945 20.18s] outbound/vless[proxy]: outbound connection to dns.quad9.net:443
+0300 2025-10-14 22:54:31 DEBUG [634839945 21.20s] dns: exchange ident.me. IN A
+0300 2025-10-14 22:54:31 INFO [634839945 21.20s] outbound/vless[proxy]: outbound connection to dns.quad9.net:443
+0300 2025-10-14 22:54:33 DEBUG [1836561970 25.3s] dns: exchange detectportal.firefox.com. IN AAAA
+0300 2025-10-14 22:54:33 DEBUG [3324043763 25.3s] dns: exchange detectportal.firefox.com. IN A
+0300 2025-10-14 22:54:33 ERROR [2198947280 20.0s] dns: exchange failed for google.com. IN AAAA: context deadline exceeded
+0300 2025-10-14 22:54:33 ERROR [3262239201 20.0s] dns: exchange failed for google.com. IN A: context deadline exceeded
+0300 2025-10-14 22:54:34 ERROR [226357336 10.0s] dns: exchange failed for www.youtube.com. IN AAAA: context deadline exceeded
+0300 2025-10-14 22:54:34 INFO [226357336 10.0s] outbound/vless[proxy]: outbound connection to dns.quad9.net:443
Может попробуем использвать другой порт, не 443,
как это сделать, и есть ли в этом смысл?
Спасибо за логи — теперь видно точнее, что ломается.
В каждой строке видно: outbound/vless[proxy]: outbound connection to dns.quad9.net:443
, а затем dns: exchange failed … context deadline exceeded
.
Это означает: DNS-апстрим внутри sing-box (DoH к Quad9 через прокси) не отвечает. Причём это уже трафик сервер → Quad9, т.е. после установления канала клиент→VLESS-сервер. Если на хостинге сервера Quad9 недоступен/фильтруется, все DNS-запросы через прокси будут «зависать».
Менять клиентский порт с 443 на 2096/8443 имеет смысл только если блокируется соединение клиент → ваш сервер. Тут же отваливается сервер → Quad9, поэтому смена порта клиента проблему DNS не решит. Сначала сделаем апстрим, который гарантированно доступен с вашего сервера.
Сделайте один из вариантов для dns.servers
и добавьте default_domain_resolver
(чтобы убрать предупреждения check
). Плюс — важно — зададим резолвер адреса апстрим-хоста как direct, чтобы не было «курица-яйцо».
json"dns": { "servers": [ { "tag": "dns_proxy", "address": "tls://1.1.1.1:853", "strategy": "prefer_ipv4", "detour": "proxy" }, { "tag": "dns_direct", "address": "tls://1.0.0.1:853", "strategy": "prefer_ipv4", "detour": "direct" } ], "final": "dns_proxy" }, "route": { "default_domain_resolver": "dns_direct", ... }
Плюс: не нужен DNS для самого апстрима (IP), значит исключаем циркулярную зависимость. Если хостинг режет Quad9 — Cloudflare обычно жив.
json"dns": { "servers": [ { "tag": "dns_proxy", "address": "https://cloudflare-dns.com/dns-query", "address_resolver": "dns_direct", "strategy": "prefer_ipv4", "detour": "proxy" }, { "tag": "dns_direct", "address": "tls://1.1.1.1:853", "strategy": "prefer_ipv4", "detour": "direct" } ], "final": "dns_proxy" }, "route": { "default_domain_resolver": "dns_direct", ... }
Здесь address_resolver: "dns_direct"
гарантирует, что имя cloudflare-dns.com
будет резолвиться в обход прокси, и DoH не «зависнет» из-за отсутствия DNS до него.
Оставьте ваши предыдущие «антиутечки» (dnsmasq на 53, sing-box на 1053, iptables/nft редирект 53→локально) — это правильно.
(это как раз то место, где всё и «сыпется»):
bash# На ВАШЕМ сервере (где xray слушает 443): nc -vz 1.1.1.1 853 nc -vz cloudflare-dns.com 443 # Если Quad9 был недоступен: nc -vz dns.quad9.net 443
Если dns.quad9.net:443
таймаутится, а Cloudflare — ок, то причина найдена.
Не убирайте то, что уже добавили:
tun.route_exclude_address
: "85.192.63.245/32"
,route.rules
выше всех общих правил:json{ "ip_cidr": ["85.192.63.245/32"], "outbound": "direct" }
И проверьте маршрутизацию:
baship route get 85.192.63.245 # должно показать dev вашего реального iface (НЕ singtun0)
bashsing-box check -c /путь/к/config.json sudo systemctl restart sing-box # DNS через цепочку: dig @127.0.0.1 example.org +time=2 +tries=1 # Убедиться, что на внешнем интерфейсе нет «сырого» 53: sudo tcpdump -i enp2s0 -n port 53
Если теперь DNS ожил, проверяйте data-plane:
bashcurl -v https://ident.me/ --max-time 5
Имеет смысл, если именно ваш провайдер блокирует/шэйпит клиентское соединение к серверу на 443 (например, из-за сигнатур). Тогда:
На сервере в inbounds
добавьте второй inbound с теми же настройками, но с другим портом, например 2096
. Перезапустите Xray и в клиенте поменяйте:
json"outbounds": [ { "type": "vless", "tag": "proxy", "server": "85.192.63.245", "server_port": 2096, ... } ]
bash# Проброс TCP 2096 → 443 на сервере sudo iptables -t nat -A PREROUTING -p tcp --dport 2096 -j REDIRECT --to-ports 443 sudo iptables -t nat -A PREROUTING -p tcp --dport 8443 -j REDIRECT --to-ports 443
Плюс открыть порты в firewall/SG, если есть. На клиенте ставите server_port: 2096
(или 8443).
Но подчёркиваю: текущая ошибка — timeout к dns.quad9.net через прокси. Переключение порта клиента без смены DNS-апстрима не устранит «context deadline exceeded».
Пришлите небольшой набор:
sing-box
(debug) вокруг одного запроса DNS после правок,ip route get 85.192.63.245
,textnc -vz 1.1.1.1 853 nc -vz cloudflare-dns.com 443 nc -vz dns.quad9.net 443
Тогда точечно добьём остатки.
kira@Bifrst:/xray/simple-xray-core nc -vz cloudflare-dns.com 443/xray/simple-xray-core
Connection to cloudflare-dns.com (104.16.248.249) 443 port [tcp/https] succeeded!
kira@Bifrst:
Лог запуска
WARN[0000] legacy DNS servers is deprecated in sing-box 1.12.0 and will be removed in sing-box 1.14.0, checkout documentation for migration: https://sing-box.sagernet.org/migration/#migrate-to-new-dns-server-formats
+0300 2025-10-14 23:04:34 INFO network: updated default interface enp2s0, index 2
+0300 2025-10-14 23:04:34 INFO inbound/tun[tun-in]: started at singtun0
+0300 2025-10-14 23:04:34 INFO inbound/direct[local-dns-in]: tcp server started at 127.0.0.1:1053
+0300 2025-10-14 23:04:34 INFO inbound/direct[local-dns-in]: udp server started at 127.0.0.1:1053
+0300 2025-10-14 23:04:34 INFO [764901384 4ms] inbound/direct[local-dns-in]: inbound packet connection from 127.0.0.1:41016
+0300 2025-10-14 23:04:34 INFO [764901384 4ms] inbound/direct[local-dns-in]: inbound packet connection to 127.0.0.1:1053
+0300 2025-10-14 23:04:34 DEBUG [764901384 5ms] router: match[0] => sniff
+0300 2025-10-14 23:04:34 DEBUG [764901384 6ms] router: sniffed packet protocol: dns
+0300 2025-10-14 23:04:34 DEBUG [764901384 6ms] router: match[1] protocol=dns => hijack-dns
+0300 2025-10-14 23:04:34 DEBUG [764901384 6ms] dns: exchange www.youtube.com. IN AAAA
+0300 2025-10-14 23:04:34 INFO [764901384 6ms] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:34 INFO [1601716269 1ms] inbound/direct[local-dns-in]: inbound packet connection from 127.0.0.1:49100
+0300 2025-10-14 23:04:34 INFO [1601716269 1ms] inbound/direct[local-dns-in]: inbound packet connection to 127.0.0.1:1053
+0300 2025-10-14 23:04:34 DEBUG [1601716269 1ms] router: match[0] => sniff
+0300 2025-10-14 23:04:34 DEBUG [1601716269 1ms] router: sniffed packet protocol: dns
+0300 2025-10-14 23:04:34 DEBUG [1601716269 1ms] router: match[1] protocol=dns => hijack-dns
+0300 2025-10-14 23:04:34 DEBUG [1601716269 1ms] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:34 INFO [1601716269 1ms] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:34 INFO [3080693603 1ms] inbound/direct[local-dns-in]: inbound packet connection from 127.0.0.1:43204
+0300 2025-10-14 23:04:34 INFO [3080693603 1ms] inbound/direct[local-dns-in]: inbound packet connection to 127.0.0.1:1053
+0300 2025-10-14 23:04:34 DEBUG [3080693603 1ms] router: match[0] => sniff
+0300 2025-10-14 23:04:34 DEBUG [3080693603 1ms] router: sniffed packet protocol: dns
+0300 2025-10-14 23:04:34 DEBUG [3080693603 1ms] router: match[1] protocol=dns => hijack-dns
+0300 2025-10-14 23:04:34 DEBUG [3080693603 1ms] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:34 INFO [3080693603 1ms] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:34 DEBUG [1601716269 1ms] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:34 DEBUG [1601716269 1ms] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:34 DEBUG [1601716269 1ms] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:34 DEBUG [3080693603 1ms] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:34 DEBUG [3080693603 1ms] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:34 DEBUG [3080693603 1ms] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:34 INFO sing-box started (0.44s)
+0300 2025-10-14 23:04:34 DEBUG [3080693603 23ms] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:34 DEBUG [3080693603 23ms] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:34 DEBUG [1601716269 24ms] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:34 DEBUG [1601716269 24ms] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:35 INFO [3333122753 0ms] inbound/direct[local-dns-in]: inbound packet connection from 127.0.0.1:56103
+0300 2025-10-14 23:04:35 INFO [3333122753 0ms] inbound/direct[local-dns-in]: inbound packet connection to 127.0.0.1:1053
+0300 2025-10-14 23:04:35 DEBUG [3333122753 0ms] router: match[0] => sniff
+0300 2025-10-14 23:04:35 DEBUG [3333122753 0ms] router: sniffed packet protocol: dns
+0300 2025-10-14 23:04:35 DEBUG [3333122753 0ms] router: match[1] protocol=dns => hijack-dns
+0300 2025-10-14 23:04:35 DEBUG [3333122753 0ms] dns: exchange example.org. IN A
+0300 2025-10-14 23:04:35 INFO [3333122753 0ms] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:35 INFO [12797202 0ms] inbound/direct[local-dns-in]: inbound packet connection from 127.0.0.1:41479
+0300 2025-10-14 23:04:35 INFO [12797202 0ms] inbound/direct[local-dns-in]: inbound packet connection to 127.0.0.1:1053
+0300 2025-10-14 23:04:35 DEBUG [12797202 0ms] router: match[0] => sniff
+0300 2025-10-14 23:04:35 DEBUG [12797202 0ms] router: sniffed packet protocol: dns
+0300 2025-10-14 23:04:35 DEBUG [12797202 0ms] router: match[1] protocol=dns => hijack-dns
+0300 2025-10-14 23:04:35 DEBUG [12797202 0ms] dns: exchange detectportal.firefox.com. IN A
+0300 2025-10-14 23:04:35 INFO [12797202 0ms] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:35 INFO [1495406153 0ms] inbound/direct[local-dns-in]: inbound packet connection from 127.0.0.1:42684
+0300 2025-10-14 23:04:35 INFO [1495406153 0ms] inbound/direct[local-dns-in]: inbound packet connection to 127.0.0.1:1053
+0300 2025-10-14 23:04:35 DEBUG [1495406153 0ms] router: match[0] => sniff
+0300 2025-10-14 23:04:35 DEBUG [1495406153 0ms] router: sniffed packet protocol: dns
+0300 2025-10-14 23:04:35 INFO [815946798 0ms] inbound/direct[local-dns-in]: inbound packet connection from 127.0.0.1:35722
+0300 2025-10-14 23:04:35 INFO [815946798 0ms] inbound/direct[local-dns-in]: inbound packet connection to 127.0.0.1:1053
+0300 2025-10-14 23:04:35 DEBUG [815946798 0ms] router: match[0] => sniff
+0300 2025-10-14 23:04:35 DEBUG [815946798 0ms] router: sniffed packet protocol: dns
+0300 2025-10-14 23:04:35 DEBUG [815946798 0ms] router: match[1] protocol=dns => hijack-dns
+0300 2025-10-14 23:04:35 DEBUG [815946798 0ms] dns: exchange detectportal.firefox.com. IN AAAA
+0300 2025-10-14 23:04:35 INFO [815946798 0ms] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:35 DEBUG [1495406153 1ms] router: match[1] protocol=dns => hijack-dns
+0300 2025-10-14 23:04:35 DEBUG [1495406153 1ms] dns: exchange example.org. IN AAAA
+0300 2025-10-14 23:04:35 INFO [1495406153 1ms] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:35 INFO [4117825500 0ms] inbound/direct[local-dns-in]: inbound packet connection from 127.0.0.1:53665
+0300 2025-10-14 23:04:35 INFO [4117825500 0ms] inbound/direct[local-dns-in]: inbound packet connection to 127.0.0.1:1053
+0300 2025-10-14 23:04:35 DEBUG [4117825500 0ms] router: match[0] => sniff
+0300 2025-10-14 23:04:35 DEBUG [4117825500 0ms] router: sniffed packet protocol: dns
+0300 2025-10-14 23:04:35 DEBUG [4117825500 0ms] router: match[1] protocol=dns => hijack-dns
+0300 2025-10-14 23:04:35 INFO [520433613 0ms] inbound/direct[local-dns-in]: inbound packet connection from 127.0.0.1:44792
+0300 2025-10-14 23:04:35 DEBUG [4117825500 0ms] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:35 INFO [520433613 0ms] inbound/direct[local-dns-in]: inbound packet connection to 127.0.0.1:1053
+0300 2025-10-14 23:04:35 DEBUG [520433613 0ms] router: match[0] => sniff
+0300 2025-10-14 23:04:35 DEBUG [520433613 0ms] router: sniffed packet protocol: dns
+0300 2025-10-14 23:04:35 DEBUG [520433613 0ms] router: match[1] protocol=dns => hijack-dns
+0300 2025-10-14 23:04:35 DEBUG [520433613 0ms] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:37 DEBUG [4117825500 1.99s] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:37 DEBUG [520433613 1.99s] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:37 DEBUG [520433613 1.99s] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:37 DEBUG [4117825500 1.99s] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:38 INFO [2536787664 0ms] inbound/direct[local-dns-in]: inbound packet connection from 127.0.0.1:38553
+0300 2025-10-14 23:04:38 INFO [2536787664 0ms] inbound/direct[local-dns-in]: inbound packet connection to 127.0.0.1:1053
+0300 2025-10-14 23:04:38 DEBUG [2536787664 0ms] router: match[0] => sniff
+0300 2025-10-14 23:04:38 INFO [923962375 0ms] inbound/direct[local-dns-in]: inbound packet connection from 127.0.0.1:59798
+0300 2025-10-14 23:04:38 DEBUG [2536787664 0ms] router: sniffed packet protocol: dns
+0300 2025-10-14 23:04:38 INFO [923962375 0ms] inbound/direct[local-dns-in]: inbound packet connection to 127.0.0.1:1053
+0300 2025-10-14 23:04:38 DEBUG [2536787664 0ms] router: match[1] protocol=dns => hijack-dns
+0300 2025-10-14 23:04:38 DEBUG [923962375 0ms] router: match[0] => sniff
+0300 2025-10-14 23:04:38 DEBUG [2536787664 0ms] dns: exchange ident.me. IN AAAA
+0300 2025-10-14 23:04:38 INFO [2536787664 0ms] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:38 DEBUG [923962375 0ms] router: sniffed packet protocol: dns
+0300 2025-10-14 23:04:38 DEBUG [923962375 0ms] router: match[1] protocol=dns => hijack-dns
+0300 2025-10-14 23:04:38 DEBUG [923962375 0ms] dns: exchange ident.me. IN A
+0300 2025-10-14 23:04:38 INFO [923962375 0ms] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:39 INFO [2760901255 0ms] inbound/direct[local-dns-in]: inbound packet connection from 127.0.0.1:47445
+0300 2025-10-14 23:04:39 INFO [2760901255 0ms] inbound/direct[local-dns-in]: inbound packet connection to 127.0.0.1:1053
+0300 2025-10-14 23:04:39 DEBUG [2760901255 0ms] router: match[0] => sniff
+0300 2025-10-14 23:04:39 DEBUG [2760901255 0ms] router: sniffed packet protocol: dns
+0300 2025-10-14 23:04:39 DEBUG [2760901255 0ms] router: match[1] protocol=dns => hijack-dns
+0300 2025-10-14 23:04:39 DEBUG [2760901255 0ms] dns: exchange cdn.ghostery.com. IN A
+0300 2025-10-14 23:04:39 INFO [2760901255 0ms] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:39 INFO [4273785745 0ms] inbound/direct[local-dns-in]: inbound packet connection from 127.0.0.1:46491
+0300 2025-10-14 23:04:39 INFO [4273785745 0ms] inbound/direct[local-dns-in]: inbound packet connection to 127.0.0.1:1053
+0300 2025-10-14 23:04:39 DEBUG [4273785745 0ms] router: match[0] => sniff
+0300 2025-10-14 23:04:39 INFO [100347221 0ms] inbound/direct[local-dns-in]: inbound packet connection from 127.0.0.1:58481
+0300 2025-10-14 23:04:39 INFO [100347221 0ms] inbound/direct[local-dns-in]: inbound packet connection to 127.0.0.1:1053
+0300 2025-10-14 23:04:39 DEBUG [100347221 0ms] router: match[0] => sniff
+0300 2025-10-14 23:04:39 DEBUG [4273785745 0ms] router: sniffed packet protocol: dns
+0300 2025-10-14 23:04:39 DEBUG [4273785745 0ms] router: match[1] protocol=dns => hijack-dns
+0300 2025-10-14 23:04:39 DEBUG [4273785745 0ms] dns: exchange www.youtube.com. IN AAAA
+0300 2025-10-14 23:04:39 DEBUG [100347221 0ms] router: sniffed packet protocol: dns
+0300 2025-10-14 23:04:39 DEBUG [100347221 0ms] router: match[1] protocol=dns => hijack-dns
+0300 2025-10-14 23:04:39 DEBUG [100347221 0ms] dns: exchange www.youtube.com. IN A
+0300 2025-10-14 23:04:39 INFO [100347221 0ms] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:39 DEBUG [520433613 3.97s] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:39 DEBUG [4117825500 3.98s] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:39 DEBUG [520433613 3.98s] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:39 DEBUG [4117825500 3.98s] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:39 DEBUG [4117825500 3.98s] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:39 DEBUG [520433613 3.98s] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:39 DEBUG [4117825500 3.98s] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:39 DEBUG [520433613 3.98s] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:39 DEBUG [520433613 4.0s] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:39 DEBUG [4117825500 4.0s] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:39 DEBUG [4117825500 4.0s] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:39 DEBUG [520433613 4.0s] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:40 DEBUG [3333122753 5.0s] dns: exchange example.org. IN A
+0300 2025-10-14 23:04:40 DEBUG [12797202 5.0s] dns: exchange detectportal.firefox.com. IN A
+0300 2025-10-14 23:04:40 DEBUG [1495406153 5.0s] dns: exchange example.org. IN AAAA
+0300 2025-10-14 23:04:40 DEBUG [3333122753 5.0s] dns: exchange example.org. IN A
+0300 2025-10-14 23:04:40 DEBUG [815946798 5.0s] dns: exchange detectportal.firefox.com. IN AAAA
+0300 2025-10-14 23:04:40 DEBUG [12797202 5.0s] dns: exchange detectportal.firefox.com. IN A
+0300 2025-10-14 23:04:40 DEBUG [12797202 5.0s] dns: exchange detectportal.firefox.com. IN A
+0300 2025-10-14 23:04:40 DEBUG [520433613 5.0s] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:40 DEBUG [520433613 5.0s] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:40 DEBUG [4117825500 5.0s] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:40 DEBUG [4117825500 5.0s] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:41 DEBUG [4117825500 6.0s] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:41 DEBUG [520433613 6.0s] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:41 DEBUG [520433613 6.0s] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:41 DEBUG [4117825500 6.0s] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:42 DEBUG [520433613 7.0s] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:42 DEBUG [520433613 7.0s] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:42 DEBUG [4117825500 7.0s] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:42 DEBUG [4117825500 7.0s] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:43 DEBUG [2536787664 5.0s] dns: exchange ident.me. IN AAAA
+0300 2025-10-14 23:04:43 DEBUG [923962375 5.0s] dns: exchange ident.me. IN A
+0300 2025-10-14 23:04:44 DEBUG [2760901255 5.0s] dns: exchange cdn.ghostery.com. IN A
+0300 2025-10-14 23:04:44 DEBUG [4273785745 5.0s] dns: exchange www.youtube.com. IN AAAA
+0300 2025-10-14 23:04:44 DEBUG [100347221 5.0s] dns: exchange www.youtube.com. IN A
+0300 2025-10-14 23:04:44 ERROR [764901384 10.0s] dns: exchange failed for www.youtube.com. IN AAAA: context deadline exceeded
+0300 2025-10-14 23:04:44 INFO [4273785745 5.45s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [4273785745 5.45s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 ERROR [1601716269 10.0s] dns: exchange failed for ping.manjaro.org. IN AAAA: context deadline exceeded
+0300 2025-10-14 23:04:44 INFO [3080693603 10.0s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [1601716269 10.0s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 ERROR [3080693603 10.0s] dns: exchange failed for ping.manjaro.org. IN A: context deadline exceeded
+0300 2025-10-14 23:04:44 INFO [520433613 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [4117825500 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [520433613 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [520433613 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [4117825500 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [520433613 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [520433613 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [4117825500 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [520433613 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [520433613 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [4117825500 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [520433613 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [4117825500 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [520433613 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [520433613 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [1601716269 10.0s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [520433613 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [3080693603 10.0s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [1601716269 10.0s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [520433613 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [3080693603 10.0s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [1601716269 10.0s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [520433613 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [1601716269 10.0s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [3080693603 10.0s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [520433613 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [3080693603 10.0s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [520433613 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [4117825500 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [4117825500 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [4117825500 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [4117825500 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [4117825500 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [4117825500 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [4117825500 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [4117825500 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [4117825500 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:44 INFO [4117825500 8.97s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:45 ERROR [3333122753 10.0s] dns: exchange failed for example.org. IN A: context deadline exceeded
+0300 2025-10-14 23:04:45 INFO [3333122753 10.0s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:45 INFO [3333122753 10.0s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:45 ERROR [12797202 10.0s] dns: exchange failed for detectportal.firefox.com. IN A: context deadline exceeded
+0300 2025-10-14 23:04:45 INFO [12797202 10.0s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:45 INFO [12797202 10.0s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:45 INFO [12797202 10.0s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:45 ERROR [815946798 10.0s] dns: exchange failed for detectportal.firefox.com. IN AAAA: context deadline exceeded
+0300 2025-10-14 23:04:45 INFO [815946798 10.0s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:45 ERROR [1495406153 10.0s] dns: exchange failed for example.org. IN AAAA: context deadline exceeded
+0300 2025-10-14 23:04:45 INFO [1495406153 10.0s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:45 DEBUG [815946798 10.1s] dns: exchange detectportal.firefox.com. IN AAAA
+0300 2025-10-14 23:04:45 DEBUG [12797202 10.1s] dns: exchange detectportal.firefox.com. IN A
+0300 2025-10-14 23:04:45 INFO [815946798 10.1s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:45 INFO [12797202 10.1s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:46 DEBUG [520433613 11.0s] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:46 DEBUG [4117825500 11.0s] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:46 INFO [520433613 11.0s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:46 INFO [4117825500 11.0s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:46 DEBUG [4117825500 11.0s] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:46 DEBUG [520433613 11.0s] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:48 ERROR [2536787664 10.0s] dns: exchange failed for ident.me. IN AAAA: context deadline exceeded
+0300 2025-10-14 23:04:48 ERROR [923962375 10.0s] dns: exchange failed for ident.me. IN A: context deadline exceeded
+0300 2025-10-14 23:04:48 INFO [2536787664 10.0s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:48 INFO [923962375 10.0s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:49 ERROR [2760901255 10.0s] dns: exchange failed for cdn.ghostery.com. IN A: context deadline exceeded
+0300 2025-10-14 23:04:49 INFO [2760901255 10.0s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:49 ERROR [100347221 10.0s] dns: exchange failed for www.youtube.com. IN A: context deadline exceeded
+0300 2025-10-14 23:04:49 INFO [100347221 10.0s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:49 DEBUG [100347221 10.1s] dns: exchange www.youtube.com. IN A
+0300 2025-10-14 23:04:49 INFO [100347221 10.1s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:49 DEBUG [4273785745 10.1s] dns: exchange www.youtube.com. IN AAAA
+0300 2025-10-14 23:04:49 INFO [4273785745 10.1s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:49 DEBUG [2536787664 11.2s] dns: exchange ident.me. IN AAAA
+0300 2025-10-14 23:04:49 INFO [2536787664 11.2s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:49 DEBUG [923962375 11.2s] dns: exchange ident.me. IN A
+0300 2025-10-14 23:04:49 INFO [923962375 11.2s] outbound/vless[proxy]: outbound connection to 1.1.1.1:853
+0300 2025-10-14 23:04:49 ERROR [4117825500 13.97s] dns: exchange failed for ping.manjaro.org. IN AAAA: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 23:04:49 ERROR [4117825500 13.97s] dns: exchange failed for ping.manjaro.org. IN AAAA: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 23:04:49 DEBUG [520433613 13.99s] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:49 DEBUG [4117825500 13.99s] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:49 DEBUG [4117825500 13.99s] dns: exchange ping.manjaro.org. IN AAAA
+0300 2025-10-14 23:04:49 DEBUG [520433613 13.99s] dns: exchange ping.manjaro.org. IN A
+0300 2025-10-14 23:04:50 ERROR [12797202 15.0s] dns: exchange failed for detectportal.firefox.com. IN A: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 23:04:50 ERROR [12797202 15.0s] dns: exchange failed for detectportal.firefox.com. IN A: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 23:04:50 ERROR [815946798 15.0s] dns: exchange failed for detectportal.firefox.com. IN AAAA: dial tcp 85.192.63.245:443: i/o timeout
+0300 2025-10-14 23:04:50 DEBUG [815946798 15.1s] dns: exchange detectportal.firefox.com. IN AAAA
+0300 2025-10-14 23:04:50 DEBUG [12797202 15.1s] dns: exchange detectportal.firefox.com. IN A
+0300 2025-10-14 23:04:54 DEBUG [100347221 15.1s] dns: exchange www.youtube.com. IN A
+0300 2025-10-14 23:04:54 DEBUG [4273785745 15.1s] dns: exchange www.youtube.com. IN AAAA
+0300 2025-10-14 23:04:54 DEBUG [2536787664 16.2s] dns: exchange ident.me. IN AAAA
+0300 2025-10-14 23:04:54 DEBUG [923962375 16.2s] dns: exchange ident.me. IN A
Спасибо за подробные логи — они очень показательные.
outbound/vless[proxy] … → 1.1.1.1:853
, а потом падает context deadline exceeded
.dial tcp 85.192.63.245:443: i/o timeout
.То есть клиенту sing-box периодически не удаётся установить TCP к твоему VLESS-серверу. Все «context deadline exceeded» по DNS — это лишь следствие: пока не поднят VLESS-канал, DoT/DoH через прокси не поедет.
С учётом TUN (auto_route:true, strict_route:true
) это почти всегда означает маршрутную петлю: попытка соединиться с самим сервером случайно уходит в TUN/прокси и застревает. Чтобы исключить это на 100%, нужно принудительно послать трафик к серверу в обход TUN, строго через физический интерфейс.
Зададим статический маршрут к 85.192.63.245
через твой реальный шлюз/интерфейс (замени enp2s0
и 192.168.0.1
на свои значения, если отличаются):
bash# посмотреть текущий дефолтный шлюз ip route | awk '/default/ {print "GW="$3,"IF="$5; exit}' # установить фиксированный маршрут до сервера sudo ip route replace 85.192.63.245/32 via 192.168.0.1 dev enp2s0 metric 5 # проверить, что путь реально идёт НЕ через singtun0 ip route get 85.192.63.245
Сделай маршрут постоянным (через NetworkManager connection / systemd-networkd — как тебе удобно).
В outbounds
для твоего vless
добавь dial-поля (они как раз для этого и существуют):
json{ "type": "vless", "tag": "proxy", "server": "85.192.63.245", "server_port": 443, "uuid": "…", "flow": "xtls-rprx-vision", "bind_interface": "enp2s0", // <- главная строчка "inet4_bind_address": "192.168.0.85", // (опционально) IP твоего enp2s0 "tls": { "enabled": true, "server_name": "github.com", "utls": { "enabled": true, "fingerprint": "chrome" }, "reality": { "enabled": true, "public_key": "…", "short_id": "…" } } }
bind_interface
относится к Dial Fields и заставляет sing-box открывать сокет к серверу строго через указанный NIC, что обрубает петли под TUN. Документация: Dial Fields → bind_interface
/detour
/… (sing-box.sagernet.org)
У тебя уже включено
route.auto_detect_interface:true
, что «в общем случае» тоже должно предотвращать петли, но в TUN-сценариях это иногда не срабатывает. Прямойbind_interface
надёжнее. Описаниеauto_detect_interface
: «Привязывать исходящие соединения к дефолтному NIC, чтобы предотвратить петли под tun». (sing-box.sagernet.org)
Ты уже добавлял исключение, но на всякий случай проверь, что оба есть и стоят выше общих правил:
inbounds.tun.route_exclude_address
: "85.192.63.245/32"
;route.rules
:
json{ "ip_cidr": ["85.192.63.245/32"], "outbound": "direct" }
NB:
route_exclude_address
— это про настройку ОС-маршрутов под TUN и работает не всегда идеально, поэтому мы дополнительно делаем OS-маршрут (п.1) и bind_interface (п.2). Это вместе закрывает тему даже при «капризном» TUN. Есть открытые тикеты про нестабильное поведение exclude-полей. (GitHub)
Пока чиним доступ к серверу, можно на 2–3 минуты поставить:
json"dns": { "final": "dns_direct" }
и вернуть обратно на dns_proxy
, как только VLESS-канал оживёт.
Пример без доменных имён (никаких лишних резолвов «до того как»), плюс default_domain_resolver
:
json"dns": { "servers": [ { "tag": "dns_proxy", "address": "tls://1.1.1.1:853", "strategy": "prefer_ipv4", "detour": "proxy" }, { "tag": "dns_direct", "address": "tls://1.0.0.1:853", "strategy": "prefer_ipv4", "detour": "direct" } ], "final": "dns_proxy" }, "route": { "default_domain_resolver": "dns_direct", … }
В 1.12+ старый DNS-формат и «legacy outbound DNS rules» депрекированы; переход на address:
+ domain_resolver
— рекомендованный путь. (New Releases)
(Если используешь DoH по имени, у нового HTTPS-DNS серверa резолв самого хоста задаётся через Dial Fields domain_resolver
, а не через устаревший address_resolver
.) (sing-box.sagernet.org)
bashsing-box check -c /путь/к/config.json sudo systemctl restart sing-box # Маршрут до сервера должен быть не через tun: ip route get 85.192.63.245 # DNS-тест через цепочку: dig @127.0.0.1 example.org +time=2 +tries=1 # И уже data-plane: curl -v https://ident.me/ --max-time 5
Если после пунктов 1–2 ещё будет i/o timeout
к 85.192.63.245:443
, кинь одной строкой вывод:
ip route get 85.192.63.245
— и 10–15 свежих строк sing-box
(debug) вокруг одного запроса. Тогда точечно посмотрим, что ещё цепляет маршрут.
Смысл есть, если именно твой провайдер душит исходящие к твоему серверу на 443. Тогда:
2096
или 8443
) или сделай DNAT 2096→443
;server_port
.Но текущий лог указывает прежде всего на петлю/маршрут на клиенте, а не на блокировку 443. Поэтому сначала зафиксируй путь к серверу (пп. 1–2).
Я не стал фиксировать путь, это не то что мне нужно. мне нужно что бы всё шло через sing tun интерфейс,
Вот что у меня есть на сервере (вывод sudo tcpdump port 443 -A -s 0)
23:22:27.341102 IP Bifrst.ptr.network.https > 91.205.160.191.57966: Flags [F.], seq 0, ack 1, win 249, options [nop,nop,TS val 476057539 ecr 1463236949], length 0
E..4.]@.@..%U.?.[......n..l..=.......h.....
...W79U 23:22:27.341121 IP Bifrst.ptr.network.https > 91.205.160.191.57980: Flags [F.], seq 0, ack 1, win 249, options [nop,nop,TS val 476057539 ecr 1463236965], length 0 E..4.X@.@..)U.?.[......|..ua.h.-.....h..... .
..W79e
23:22:27.341126 IP Bifrst.ptr.network.https > 91.205.160.191.58018: Flags [F.], seq 0, ack 1, win 249, options [nop,nop,TS val 476057539 ecr 1463237030], length 0
E..4c.@[email protected].?.[.......O....W.......h.....
...W79. 23:22:27.405137 IP Bifrst.ptr.network.https > 91.205.160.191.53852: Flags [F.], seq 730677946, ack 2809293376, win 249, options [nop,nop,TS val 476057603 ecr 1463221506], length 0 E..4#.@[email protected].?.[......\[email protected]..... .
..W6..
23:22:27.405171 IP Bifrst.ptr.network.https > 91.205.160.191.53866: Flags [F.], seq 2425953146, ack 1307233801, win 249, options [nop,nop,TS val 476057603 ecr 1463221874], length 0
E..4.<@[email protected].?.[......j...zM.. .....h.....
...W6.r 23:22:27.405194 IP Bifrst.ptr.network.https > 91.205.160.191.57992: Flags [F.], seq 0, ack 1, win 249, options [nop,nop,TS val 476057603 ecr 1463236974], length 0 E..4Pe@[email protected].?.[....... ..q.........h..... .
..W79n
23:22:27.499016 IP lb-140-82-121-4-fra.github.com.https > Bifrst.ptr.network.35272: Flags [S.], seq 4149652978, ack 2808847292, win 65535, options [mss 1320,sackOK,TS val 2441673138 ecr 3734715942,nop,wscale 10], length 0
E..<[email protected].?......V...k.......z.....(...
......>&...
23:22:27.499061 IP Bifrst.ptr.network.35272 > lb-140-82-121-4-fra.github.com.https: Flags [.], ack 1, win 251, options [nop,nop,TS val 3734716990 ecr 2441672114], length 0
E..4..@[email protected].?..Ry......k...V.......2.....
..B>....
23:22:27.917115 IP Bifrst.ptr.network.https > 91.205.160.191.53894: Flags [F.], seq 97302824, ack 3040489310, win 249, options [nop,nop,TS val 476058115 ecr 1463221901], length 0
E..4.Y@.@..(U.?.[..........(.:/^.....h.....
...W6.. 23:22:27.917141 IP Bifrst.ptr.network.https > 91.205.160.191.53890: Flags [F.], seq 3984766975, ack 3793103971, win 249, options [nop,nop,TS val 476058115 ecr 1463221893], length 0 E..4].@[email protected].?.[.............,c.....h..... .
..W6..
23:22:27.917160 IP Bifrst.ptr.network.https > 91.205.160.191.53906: Flags [F.], seq 3168358960, ack 2843608541, win 249, options [nop,nop,TS val 476058115 ecr 1463221955], length 0
E..4z.@[email protected].?.[.........R0.~.......h.....
...W6.. 23:22:28.301119 IP Bifrst.ptr.network.https > 91.205.160.191.57998: Flags [F.], seq 0, ack 1, win 249, options [nop,nop,TS val 476058499 ecr 1463237971], length 0 E..4..@[email protected].?.[.......7............h..... .
..W7=S
23:22:28.301143 IP Bifrst.ptr.network.https > 91.205.160.191.57946: Flags [F.], seq 0, ack 1, win 249, options [nop,nop,TS val 476058499 ecr 1463235752], length 0
E..4}.@.@.*.U.?.[......Z5Yd..#].....h..... .
..W74.
23:22:28.365099 IP Bifrst.ptr.network.https > 91.205.160.191.58008: Flags [F.], seq 0, ack 1, win 249, options [nop,nop,TS val 476058563 ecr 1463238026], length 0
E..4..@[email protected].?.[.............O-.....h.....
...W7=. 23:22:28.429101 IP Bifrst.ptr.network.https > 91.205.160.191.53874: Flags [F.], seq 1171106508, ack 3869719853, win 249, options [nop,nop,TS val 476058627 ecr 1463221893], length 0 E..4r.@[email protected].?.[......rE.....=-.....h..... .
..W6..
23:22:28.429143 IP Bifrst.ptr.network.https > 91.205.160.191.53868: Flags [F.], seq 3795724568, ack 648340432, win 249, options [nop,nop,TS val 476058627 ecr 1463221893], length 0
E..4..@[email protected].?.[......l.>).&........h.....
...W6.. 23:22:28.429154 IP Bifrst.ptr.network.https > 91.205.160.191.52974: Flags [F.], seq 1532404752, ack 3985151383, win 249, options [nop,nop,TS val 476058627 ecr 1463203869], length 0 E..4.6@[email protected].?.[.......[V...........h..... .
..W6..
23:22:28.429160 IP Bifrst.ptr.network.https > 91.205.160.191.52968: Flags [F.], seq 4145253330, ack 4161053513, win 249, options [nop,nop,TS val 476058627 ecr 1463203868], length 0
E..4..@[email protected].?.[..............I.....h.....
...W6.. 23:22:28.941101 IP Bifrst.ptr.network.https > 91.205.160.191.52980: Flags [F.], seq 2690326773, ack 1603981513, win 249, options [nop,nop,TS val 476059139 ecr 1463205608], length 0 E..4..@[email protected].?.[........[ ._........h..... .
..W6..
23:22:29.261106 IP Bifrst.ptr.network.https > 91.205.160.191.57960: Flags [F.], seq 0, ack 1, win 249, options [nop,nop,TS val 476059459 ecr 1463236585], length 0
E..4..@.@.$.U.?.[......h".)...y.....h..... .
.CW77.
^C
173 packets captured
177 packets received by filter
0 packets dropped by kernel
Окей, вижу, почему всё «висит», и при этом ты прав — фиксить системный маршрут не обязательно. Можно оставить «всё через TUN» для приложений, но само подключение клиента к серверу (единственный «бутстрап»-трафик) должно выходить напрямую через физический интерфейс из процесса sing-box, иначе получается петля.
Сейчас по логам и по tcpdump
на сервере:
outbound … → 1.1.1.1:853
), но сессия не встаёт → context deadline exceeded
.Ниже — план, который не ломает твою модель «всё через singtun», но гарантирует, что sing-box сможет сам выйти к серверу «в обход TUN», и параллельно устраняет причины мгновенных закрытий на сервере.
Нам достаточно ограничиться настройками в самом sing-box.
В твоём outbounds
для VLESS добавь dial-поля:
json{ "type": "vless", "tag": "proxy", "server": "85.192.63.245", "server_port": 443, "uuid": "…", "flow": "xtls-rprx-vision", "bind_interface": "enp2s0", "inet4_bind_address": "192.168.0.85", "tls": { "enabled": true, "server_name": "github.com", "utls": { "enabled": true, "fingerprint": "chrome" }, "reality": { "enabled": true, "public_key": "…", "short_id": "…" } } }
bind_interface
заставит именно соединение к серверу идти через реальный NIC, не попадая в TUN. Всё остальное (трафик приложений) по-прежнему маршрутизируется TUN’ом.
Они действуют только на соединения, которые инициирует сам sing-box (а не приложения), так что «всё через TUN» не пострадает:
inbounds.tun.route_exclude_address
уже есть:
"85.192.63.245/32"
route.rules
(выше общих правил):
json{ "ip_cidr": ["85.192.63.245/32"], "outbound": "direct" }
Этого достаточно, без статических маршрутов ОС.
Проверь inbound на сервере (Xray). Минимально корректный пример:
json{ "inbounds": [ { "port": 443, "protocol": "vless", "settings": { "decryption": "none", "clients": [ { "id": "YOUR-UUID", "flow": "xtls-rprx-vision" } ] }, "streamSettings": { "network": "tcp", "security": "reality", "realitySettings": { "show": false, "dest": "github.com:443", "serverNames": ["github.com"], "privateKey": "SERVER-REALITY-PRIVKEY", "shortIds": ["SHORTID"] } }, "sniffing": { "enabled": true, "destOverride": ["http", "tls"] } } ] }
Проверь строго:
UUID
на клиенте == clients[].id
на сервере.flow
с двух сторон: "xtls-rprx-vision"
.server_name
(клиент) ∈ serverNames
(сервер), напр. github.com
.public_key
(клиент) соответствует privateKey
(сервер). Если сомневаешься — сгенерируй пару заново:
bashxray x25519 # privateKey -> в server.realitySettings.privateKey # publicKey -> в client.tls.reality.public_key
short_id
(клиент) ∈ shortIds
(сервер). Длина 8/16 (hex).Если что-то из этого не совпадает, Xray принимает коннект и сразу закрывает (что ты видишь как FIN в tcpdump
).
Полезно запустить на сервере в момент попытки коннекта:
bashjournalctl -u xray -n 200 -f
Обычно видно сообщения вида «short id not found / invalid user / reality handshake failed».
Чтобы убрать WARN и исключить «курицу-яйцо», используй новый синтаксис и апстрим по IP:
json"dns": { "servers": [ { "tag": "dns_proxy", "address": "tls://1.1.1.1:853", "strategy": "prefer_ipv4", "detour": "proxy" }, { "tag": "dns_direct", "address": "tls://1.0.0.1:853", "strategy": "prefer_ipv4", "detour": "direct" } ], "final": "dns_proxy" }, "route": { "default_domain_resolver": "dns_direct", ... }
Пока чинится пункт 2, можно временно:
"dns": { "final": "dns_direct" }
и вернуть dns_proxy
, когда VLESS оживёт.
bashsing-box check -c /путь/к/config.json sudo systemctl restart sing-box
Убедись, что sing-box открывает TCP к серверу в обход TUN (за это отвечает bind_interface
— дополнительной проверки маршрутов ОС не требуется).
На сервере (параллельно) смотри логи:
bashjournalctl -u xray -n 50 -f
При удачном рукопожатии не будет мгновенных FIN после SYN — TCP-сессии станут «длинными».
bashdig @127.0.0.1 example.org +time=2 +tries=1 curl -v https://ident.me/ --max-time 5
Можно, но это решает лишь случаи DPI/шэйпинга по 443 между клиентом и сервером. Твои текущие симптомы — именно закрытие на сервере (FIN), то есть проблема уровня конфигурации REALITY/Vision/UUID/SNI/shortId.
Если всё-таки хочешь добавить альтернативный порт (например, 2096):
port: 2096
или DNAT 2096→443.server_port
на 2096
.bind_interface
+ точечные правила (без «фикса пути» в ОС).Если после правок сервер всё ещё шлёт FIN, скинь 10–20 строк journalctl -u xray
вокруг попытки — там будет точная причина (short id / user / reality handshake).