blockcheck: multiple test attempts

This commit is contained in:
bol-van 2021-12-22 12:31:45 +03:00
parent 14a741d5a5
commit ba601b08ce
2 changed files with 31 additions and 11 deletions

View File

@ -352,15 +352,23 @@ curl_test()
{ {
# $1 - test function # $1 - test function
# $2 - domain # $2 - domain
$1 $IPV $2 && { local code=0 n=0
echo '!!!!! AVAILABLE !!!!!'
return 0 while [ $n -lt $REPEATS ]; do
} n=$(($n+1))
local code=$? [ $REPEATS -gt 1 ] && $ECHON "[attempt $n] "
$1 $IPV $2 && {
[ $REPEATS -gt 1 ] && echo 'AVAILABLE'
continue
}
code=$?
done
if [ $code = 254 ]; then if [ $code = 254 ]; then
echo UNAVAILABLE echo "UNAVAILABLE"
elif [ $code = 0 ]; then
echo '!!!!! AVAILABLE !!!!!'
else else
echo UNAVAILABLE code=$code echo "UNAVAILABLE code=$code"
fi fi
return $code return $code
} }
@ -638,12 +646,23 @@ ask_params()
CURL_OPT= CURL_OPT=
[ $ENABLE_HTTPS_TLS13 = 1 -o $ENABLE_HTTPS_TLS12 = 1 ] && { [ $ENABLE_HTTPS_TLS13 = 1 -o $ENABLE_HTTPS_TLS12 = 1 ] && {
echo echo
echo on limited systems like openwrt CA certificates might not be installed to preserve space echo "on limited systems like openwrt CA certificates might not be installed to preserve space"
echo in such a case curl cannot verify server certificate and you should either install ca-bundle or disable verification echo "in such a case curl cannot verify server certificate and you should either install ca-bundle or disable verification"
echo however disabling verification will break https check if ISP does MitM attack and substitutes server certificate echo "however disabling verification will break https check if ISP does MitM attack and substitutes server certificate"
ask_yes_no_var IGNORE_CA "do not verify server certificate" ask_yes_no_var IGNORE_CA "do not verify server certificate"
[ "$IGNORE_CA" = 1 ] && CURL_OPT=-k [ "$IGNORE_CA" = 1 ] && CURL_OPT=-k
} }
echo
echo "sometimes ISPs use multiple DPIs or load balancing. bypass strategies may work unstable."
$ECHON "how many times to repeat each test (default: 1) : "
read REPEATS
REPEATS=$((0+${REPEATS:-1}))
[ "$REPEATS" = 0 ] && {
echo invalid repeat count
exitp 1
}
echo echo
} }

View File

@ -734,7 +734,8 @@ tpws и nfqws решают нужно ли применять дурение в
они находятся на разных хопах. Такая ситуация может выражаться в нестабильности работы обхода. они находятся на разных хопах. Такая ситуация может выражаться в нестабильности работы обхода.
Дернули несколько раз curl. То работает, то connection reset или редирект. blockcheck.sh выдает Дернули несколько раз curl. То работает, то connection reset или редирект. blockcheck.sh выдает
странноватые результаты. То split работает на 2-м. хопе, то на 4-м. Достоверность результата вызывает сомнения. странноватые результаты. То split работает на 2-м. хопе, то на 4-м. Достоверность результата вызывает сомнения.
В этом случае вам придется вручную подбирать режимы, которые покрыли бы все DPI на вашем пути. В этом случае задайте несколько повторов одного и того же теста. Тест будет считаться успешным только,
если все попытки пройдут успешно.
Выбор параметров Выбор параметров