Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Проблема с прогоном blockcheck на винде (doh fail) #921

Open
PidorPereodetii opened this issue Dec 8, 2024 · 11 comments

Comments

@PidorPereodetii
Copy link

Провайдер дом.ру, винда, запускал дефолтный пресет - все устраивало до того момента пока некоторые сайты стали отдавать 504 gateway timeout вместо результата, причем дефолтный клаудфлары. Почти все сайты открываются нормально но иногда можно поймать 504 и остаться с ней. Стал грешить что пакеты не нравятся, начал ковыряться - поставил dnscrypt, судя по тому что blockcheck при старте выдает правильный ip от system resolvera - работает.
Проблема в том что я не могу настроить пресет под себя из-за того что doh fail каждый раз.

press enter to continue

Если проблема не на стороне zapret, то глубочайше извиняюсь и пойду копать дальше что не так у меня.

@bol-van
Copy link
Owner

bol-van commented Dec 8, 2024

Если подергать эти URL doh серверов curl-ом что получается ?
HIJAQ оно будет выдавать независимо от настройки doh или другого способа обхода DNS
И будет пытаться лезть на doh
Но надо понять почему doh не срабатывают. Все заблочены или еще что-то ?

Можно отказаться от doh через установку переменной SECURE_DNS=0

@PidorPereodetii
Copy link
Author

PidorPereodetii commented Dec 8, 2024

Хм, чет я совсем забыл вручную курл дернуть, хватило ума только из браузера, хотя было понятно что это не то.
curl -v https://cloudflare-dns.com/dns-query

  • Host cloudflare-dns.com:443 was resolved.
  • IPv6: (none)
  • IPv4: 104.16.248.249, 104.16.249.249
  • Trying 104.16.248.249:443...
  • Connected to cloudflare-dns.com (104.16.248.249) port 443
  • schannel: disabled automatic use of client certificate
  • ALPN: curl offers http/1.1
  • ALPN: server accepted http/1.1
  • using HTTP/1.x

GET /dns-query HTTP/1.1
Host: cloudflare-dns.com
User-Agent: curl/8.9.1
Accept: /

  • Request completely sent off
    < HTTP/1.1 400 Bad Request
    < Server: cloudflare
    < Date: Sun, 08 Dec 2024 12:07:25 GMT
    < Transfer-Encoding: chunked
    < Connection: keep-alive
    < Access-Control-Allow-Origin: *
    < CF-RAY: 8eeca291794af11e-DME
    <
  • Connection #0 to host cloudflare-dns.com left intact

Потыкал еще - при курле в one.one.one.one - выдает все отлично. Как только делаю добавляю /dns-query - сразу 400 в меня плюется. Мне кажется я где-то в своей винде насрал и теперь страдаю потому что не помню где.

А и не понял где ставить SECURE_DNS=0 в blockcheck.sh - поставил в mdig_cache - ноль реакции на изменение, поставил в check_dns - он валится на поиске вариантов обхода потому что у него нету doh серверов для проверки.

@bol-van
Copy link
Owner

bol-van commented Dec 8, 2024

В cygwin prompt
$ SECURE_DNS=0 blockcheck

Версия последняя bundle ?

@PidorPereodetii
Copy link
Author

Версия последняя, спасибо понял как. Надеюсь смогу через cygwin найти подходящий пресет. Извиняюсь что открыл ишу не в бандле а здесь.

@bol-van
Copy link
Owner

bol-van commented Dec 8, 2024

Это не особо бандла касается.
По хорошему надо выяснить что там не так. У меня все хорошо работает.
Если https соединение устанавливается и возвращает http ответы, значит никто в него не вмешивается, а IP правильные.

Doh эксплуатируется так :

$ mdig --family=4 --dns-make-query=rutracker.org | curl --data-binary @- -H "Content-Type: application/dns-message" https://cloudflare-dns.com/dns-query | mdig --dns-parse-query
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    94  100    63  100    31    648    319 --:--:-- --:--:-- --:--:--   979
172.67.182.196
104.21.32.39

mdig конструирует бинарный блоб DNS запроса, передает его curl для POSTа на URL doh сервера, ответ передается mdig для распарсивания
надо выяснить на каком этапе идет затык

@PidorPereodetii
Copy link
Author

Я раньше заметил что резолвит он правильно если я передаю что именно нужно резолвить в /dns-query, а чистый курл в /dns-query посылает меня.
mdig --family=4 --dns-make-query=rutracker.org | curl -v --data-binary @- -H "Content-Type: application/dns-message" https://cloudflare-dns.com/dns-query | mdig --dns-parse-query
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Host cloudflare-dns.com:443 was resolved.

  • IPv6: (none)
  • IPv4: 104.16.249.249, 104.16.248.249
  • Trying 104.16.249.249:443...
  • Connected to cloudflare-dns.com (104.16.249.249) port 443
  • schannel: disabled automatic use of client certificate
  • ALPN: curl offers http/1.1
  • ALPN: server accepted http/1.1
  • using HTTP/1.x

POST /dns-query HTTP/1.1
Host: cloudflare-dns.com
User-Agent: curl/8.9.1
Accept: /
Content-Type: application/dns-message
Content-Length: 31

} [31 bytes data]

  • upload completely sent off: 31 bytes
    < HTTP/1.1 200 OK
    < Server: cloudflare
    < Date: Sun, 08 Dec 2024 13:17:02 GMT
    < Content-Type: application/dns-message
    < Connection: keep-alive
    < Access-Control-Allow-Origin: *
    < Content-Length: 63
    < CF-RAY: 8eed088b7925f109-DME
    < alt-svc: h3=":443"; ma=86400
    <
    { [63 bytes data]
    100 94 100 63 100 31 401 197 --:--:-- --:--:-- --:--:-- 606
  • Connection #0 to host cloudflare-dns.com left intact
    104.21.32.39
    172.67.182.196

@bol-van
Copy link
Owner

bol-van commented Dec 8, 2024

Для проверки работоспособности doh он такой же схемой ресолвит ipv4 iana.org

doh_resolve()
{
	# $1 - ip version 4/6
	# $2 - hostname
	# $3 - doh server URL. use $DOH_SERVER if empty
	$MDIG --family=$1 --dns-make-query=$2 | curl -s --data-binary @- -H "Content-Type: application/dns-message" "${3:-$DOH_SERVER}" | $MDIG --dns-parse-query
}

doh_find_working()
{
	local doh

	[ -n "$DOH_SERVER" ] && return 0
	echo "* searching working DoH server"
	DOH_SERVER=
	for doh in $DOH_SERVERS; do
		echo -n "$doh : "
		if doh_resolve 4 iana.org $doh >/dev/null 2>/dev/null; then
			echo OK
			DOH_SERVER="$doh"
			return 0
		else
			echo FAIL
		fi
	done
	echo all DoH servers failed
	return 1
}

здесь можно убрать -s и вставить -v в curl, чтобы понять что происходит
и это убрать : >/dev/null 2>/dev/null

@Verity-Freedom
Copy link

@bol-van это массовая проблема, у меня то же самое.

@Verity-Freedom
Copy link

Помогло вырубить прокси с локалхоста.

@bol-van
Copy link
Owner

bol-van commented Dec 12, 2024

Ну а толку говорить, что она массовая ? У меня не воспроизводится
Хотите фикса -выходите за чисто юзерский потребительский подход
Разбирайте где что и как. Тем более уже все написал что надо делать

@Verity-Freedom
Copy link

Нет она всё-таки не массовая у меня исчезла после того как поотрубал все лишние прокси VPN и версии запрета. Другим тоже надо смотреть есть ли у них что.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants