Skip to content

Commit

Permalink
Теперь порядок включения AdGuard Home соответствует описанию в Wiki, …
Browse files Browse the repository at this point in the history
…тикет [#69]
  • Loading branch information
qzeleza committed Nov 26, 2023
1 parent 19c8e3d commit 8d31b61
Show file tree
Hide file tree
Showing 6 changed files with 126 additions and 34 deletions.
8 changes: 6 additions & 2 deletions HISTORY.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
## 1.1.5 final
- В скрипт обновления пакета ipk/update.sh добавлена информация о версии удаляемого пакета.
- Исправлена ошибка при выводе на экран всех VPN интерфейсов в системе (тикет [#74](https://github.com/qzeleza/kvas/issues/74)).
- Теперь при установке пакета в случае наличия файла /opt/etc/hosts.list он не переписывается на файл по умолчанию.
- В скрипте ipk/update.sh в режиме обновления пакета устанавливается прежний файл с хостами (ранее происходило слияние файла по умолчанию с предыдущими доменами из списка);
- Исправлена ошибка при выводе на экран всех VPN интерфейсов в системе (тикет [#74](https://github.com/qzeleza/kvas/issues/74)):
- При ручной установке пакета, в случае наличия файла /opt/etc/hosts.list, данный файл не переписывается на файл hosts.list по умолчанию;
- Исправлена ошибка при импорте хостов, приводившая к зависанию процедуры.
- Доработан механизм обновления хостов в списке разблокировки.
- При вводе неизвестной команды теперь выводится справка.
- Теперь порядок включения AdGuard Home соответствует описанию в Wiki (тикет [#69](https://github.com/qzeleza/kvas/issues/69))

## 1.1.5 pre-release 4
- В скрипт обновления пакета [ipk/update.sh] добавлены дополнительные проверки для корректной его работы.
Expand Down
Binary file modified ipk/kvas_1.1.5-final_all.ipk
Binary file not shown.
3 changes: 2 additions & 1 deletion ipk/update.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ hosts_list=/opt/etc/hosts.list
kvas_conf=/opt/etc/kvas.conf
rm_type="${1}"
version=$(echo "${package_name}" | sed 's/kvas_\(.*\)_all.*/\1/; s/-/ /g; s/_/-/' )
prev_path=$(pwd)

clear
print_line
Expand Down Expand Up @@ -105,4 +106,4 @@ else

fi

rm -f ./update.sh
cd "${prev_path}" && rm -f "${prev_path}/update.sh"
4 changes: 3 additions & 1 deletion opt/bin/kvas
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,9 @@ case "${1}" in
uninstall|remove|rm ) cmd_uninstall "${2}" "${3}"
;;

*) cmd_show_list
*) error "Команда '${1}' не известна, список доступных команд:"
print_line
cmd_help
;;
esac

Expand Down
2 changes: 2 additions & 0 deletions opt/bin/libs/check
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,8 @@ vpn_check(){
else
when_bad "ОСТАНОВЛЕНО"
ready "Перезапускаем еще раз vpn соединение ${vpn_cli_desc}"
curl -s -d '{"up":"false"}' "${LOCALHOST_IP}:79/rci/interface/${vpn_cli}" &>/dev/null
sleep 1
status=$(curl -s -d '{"up":"true"}' "${LOCALHOST_IP}:79/rci/interface/${vpn_cli}")
if [ -n "$(echo "${status}" | grep 'interface is up.' )" ]; then
when_ok "ПОДКЮЧЕНО"
Expand Down
143 changes: 113 additions & 30 deletions opt/bin/libs/vpn
Original file line number Diff line number Diff line change
Expand Up @@ -23,19 +23,12 @@ LOCALHOST_IP=127.0.0.1
DNS_IP_PORT="${LOCALHOST_IP}#${MAIN_DNS_PORT}"
CMD_LIST="address prefix name-servers"


# ------------------------------------------------------------------------------------------
#
# Производим инициализацию пакета КВАС
# Обновляем таблицу iptable и правила в ней
#
# ------------------------------------------------------------------------------------------
cmd_kvas_init(){
stage="${1:-no}"
prefix=''
mess="${prefix}Производим сброс пакета КВАС в исходное состояние."
warning "${mess}";
# log_alert "${mess}"
print_line
update_iptables(){

recreate_ip4tables

Expand All @@ -45,6 +38,15 @@ cmd_kvas_init(){
else
recreate_vpn_rules
fi
}

# ------------------------------------------------------------------------------------------
#
# Обновляем правила ipset
#
# ------------------------------------------------------------------------------------------
update_ipset(){
stage="${1}"

ready "${prefix}Заполняем ipset таблицу данными из списка разблокировки."
/opt/apps/kvas/bin/main/ipset &> /dev/null &
Expand All @@ -59,21 +61,89 @@ cmd_kvas_init(){
/opt/etc/init.d/S99adguardhome restart &>/dev/null && when_ok "ГОТОВО" || when_bad "ОШИБКА"
}
fi
}

. /opt/apps/kvas/bin/libs/adblock
if cmd_ads_status | grep -q 'ВКЛЮЧЕНА' ; then
ready "${prefix}Обновляем данные списка блокировки рекламы."
/opt/apps/kvas/bin/main/adblock &>/dev/null && when_ok "ГОТОВО" || when_bad "ОШИБКА"
# ------------------------------------------------------------------------------------------
#
# Обновляем правила adblock если этот режим включен
#
# ------------------------------------------------------------------------------------------
update_adblock(){

if [ -f '/opt/etc/init.d/S56dnsmasq' ]; then
if cat < '/opt/etc/dnsmasq.conf' | sed 's/^\(.*\)\(#.*\)/\2/; /^#/d; /^$/d' | grep -q "${ADS_HOSTS_FILE}" &> /dev/null; then
ready "${prefix}Обновляем данные списка блокировки рекламы."
/opt/apps/kvas/bin/main/adblock &>/dev/null && when_ok "ГОТОВО" || when_bad "ОШИБКА"
fi
fi
}

# ------------------------------------------------------------------------------------------
#
# Обновляем дату роутера с сервером времени
#
# ------------------------------------------------------------------------------------------
update_time(){
ready "${prefix}Синхронизируем дату роутера с сервером времени."
date_update &>/dev/null && when_ok "ГОТОВО" || when_bad "ОШИБКА"
}

# ------------------------------------------------------------------------------------------
#
# Производим перезапуск подключения к интернету
#
# ------------------------------------------------------------------------------------------
current_cli_vpn_interface() {
inface_entware=$(get_config_value INFACE_ENT)
inface=$(grep "${inface_entware}" "${INFACE_NAMES_FILE}" | cut -d'|' -f1)
echo "${inface}"
}

reset_all_connection(){

ready "${prefix}Перезапускаем VPN и ISP соединения..."
{
if has_ssr_enable ; then
/opt/etc/init.d/S22shadowsocks stop &>/dev/null
reset_ISP_connection
/opt/etc/init.d/S22shadowsocks start &>/dev/null
else
inface=$(current_cli_vpn_interface)
cli_request="localhost:79/rci/interface/${inface}"
curl -s -d '{"down":"true"}' "${cli_request}" &>/dev/null
reset_ISP_connection
curl -s -d '{"up":"true"}' "${cli_request}" &>/dev/null
fi
} && when_ok "ГОТОВО" || when_bad "ОШИБКА"

}

# ------------------------------------------------------------------------------------------
#
# Производим инициализацию пакета КВАС
# $1 - режим запуска функции имеет следующие значения:
# update - режим обновления при выполнении kvas update
# refresh - режим обновления списка доменов при командах add/del/import
# ------------------------------------------------------------------------------------------
cmd_kvas_init(){

stage="${1:-no}"
prefix=''
mess="${prefix}Производим сброс пакета КВАС в исходное состояние."
warning "${mess}"
print_line

# Производим перезапуск подключения к интернету
# если не режим update и если текущее подключение не ssr
if [ "${stage}" != update ] || ! has_ssr_enable ; then reset_all_connection; fi

iptables_reset
update_iptables
update_ipset "${stage}"
update_adblock

[ "${stage}" = initd ] && update_time

if ! [ "${stage}" = update ] || ! has_ssr_enable ; then
ready "${prefix}Производим перезапуск подключения к интернету"
reset_ISP_connection && when_ok "ГОТОВО" || when_bad "ОШИБКА"
iptables_reset
fi

log_alert "${prefix}Сброс пакета КВАС в исходное состояние ЗАВЕРШЕН!"

Expand Down Expand Up @@ -430,12 +500,29 @@ adguardhome_check_config() {
mv /opt/bin/AdGuardHome.yaml /opt/etc/AdGuardHome/AdGuardHome.yaml
"${ADGUARDHOME_DEMON}" restart &> /dev/null
else
echo "Следуйте инструкциям на экране ниже..."
echo "После всех произведенных настроек нажмите Ctrl-C"
# echo -e "И затем снова запустите ${BLUE}kvas adguard on${NOCL}"
warning "Сейчас, перейдите на клиентское устройство в своем браузере "
warning "и зайдите на страницу http://$(get_router_ip):3000 для настройки AdGuardHome"
print_line
/opt/bin/AdGuardHome
cmd_adguardhome_on
warning "В поле 'Веб-интерфейс администрирования' выберите IP своего роутера выше"
warning "В поле 'DNS-сервер' выберите пункт 'Все интерфейсы' и на следующем шаге"
warning "введите имя и дважды пароль для входа в интерфейс AdGuardHome"
warning "Далее, на следующей странице, нажмите на 'Открыть Панель Управления'."
warning "После чего, установка AdGuard на роутере завершится автоматически."

log_file="/opt/tmp/ADG.log"
rm -f "${log_file}"
/opt/bin/AdGuardHome -l "${log_file}" &
sleep 1
while true; do
if cat < "${log_file}" | grep 'go to http' | grep -qv ':3000'; then
killall AdGuardHome
print_line
adguardhome_setup
break
fi
sleep 1 # Пауза в секундах между проверками
done
# auth: user "adguard" successfully logged in from ip 10.1.2.9
fi
fi
}
Expand Down Expand Up @@ -1941,8 +2028,7 @@ cmd_del_one_host() {
ready "Удаляем ${YELLOW}${host_}${NOCL} из списка разблокировки..."
sed -i "/${host_////\\/}/d" "${UNBLOCK_LIST_FILE}"
[ -f /opt/bin/AdGuardHome ] && sed -i "/${host_////\\/}/d" "${ADGUARD_IPSET_FILE}"
# cmd_kvas_init "no" &> /dev/null
iptables_reset &> /dev/null
cmd_kvas_init "refresh" &> /dev/null
[ $? = 0 ] && when_ok "УДАЛЕН" || when_bad "НЕ УДАЛЕН"
# если включен блокировщик рекламы
if cmd_ads_status | grep -q ВКЛЮЧЕН ; then
Expand Down Expand Up @@ -1975,8 +2061,7 @@ cmd_clear_list() {
mv -f "${UNBLOCK_LIST_FILE}" "${KVAS_BACKUP_LIST_FILE}"
rm -f "${ADGUARD_IPSET_FILE}"
touch "${UNBLOCK_LIST_FILE}"
# cmd_kvas_init "no" &> /dev/null
iptables_reset &> /dev/null
cmd_kvas_init "update" &> /dev/null
[ $? = 0 ] && when_ok "ОЧИЩЕН" || when_bad "ОШИБКА"
print_line
warning "Предыдущий список разблокировки был сохранен в файл ${KVAS_BACKUP_LIST_FILE}"
Expand Down Expand Up @@ -2059,9 +2144,7 @@ cmd_import_hosts() {
ads_list_hosts_update &> /dev/null
fi

# cmd_kvas_init "no" &> /dev/null
# сброс всех правил
iptables_reset &> /dev/null
cmd_kvas_init "update" &> /dev/null

[ $? = 0 ] && when_ok "ГОТОВО" || when_bad "ОШИБКА"

Expand Down

0 comments on commit 8d31b61

Please sign in to comment.