Автоматическое обновление списков обхода блокировок для Keenetic
Скрипт загрузки
Скрипт расчитан на работу только с Ipv4. Для использования с v6 необходимо скорректировать приписку bypass заменив на bypass,bypass6
Списки обхода блокировок для разных вариантов реализации
Для автоматического обновления списка обхода блокировок можно использовать следующий скрипт:
#!/bin/sh
# URL проекта на GitHub, содержащего список сайтов
GITHUB_URL="https://raw.githubusercontent.com/itdoginfo/allow-domains/main/Russia/inside-raw.lst"
# Локальный файл для сохранения результатов
OUTPUT_FILE="/opt/etc/AdGuardHome/ipset.conf"
# Локальный файл с вашим списком сайтов
LOCAL_FILE="/opt/etc/AdGuardHome/my-domains-list.conf"
# Создаем временный файл для загрузки списка сайтов
TEMP_FILE=$(mktemp)
# Загружаем список сайтов из GitHub
curl -s $GITHUB_URL -o $TEMP_FILE
# Проверяем успешность загрузки
if [ $? -ne 0 ]; then
echo "Ошибка при загрузке списка сайтов"
rm -f $TEMP_FILE
exit 1
fi
# Очищаем файл перед записью новых данных
> $OUTPUT_FILE
# Сначала обрабатываем локальный файл и добавляем /bypass
if [ -f "$LOCAL_FILE" ]; then
while IFS= read -r site || [ -n "$site" ]; do
# Удаляем символы CR (возврат каретки)
site=$(echo "$site" | tr -d '\r')
# Пропускаем пустые строки
[ -z "$site" ] && continue
echo "$site/bypass" >> $OUTPUT_FILE
done < $LOCAL_FILE
else
echo "Локальный файл $LOCAL_FILE не найден"
fi
# Затем обрабатываем загруженный файл и добавляем /bypass
while IFS= read -r site || [ -n "$site" ]; do
# Удаляем символы CR (возврат каретки)
site=$(echo "$site" | tr -d '\r')
# Пропускаем пустые строки
[ -z "$site" ] && continue
echo "$site/bypass" >> $OUTPUT_FILE
done < $TEMP_FILE
# Удаляем временный файл
rm -f $TEMP_FILE
echo "Файл $OUTPUT_FILE успешно обновлен"
Скрипт поддерживает использование дополнительного списка своих сайтов которые должны быть размещены в файле /opt/etc/AdGuardHome/my-domains-list.conf
Создайте файл /opt/etc/AdGuardHome/my-domains-list.conf
Для работы необходимо разместить скрипт по пути /opt/etc/AdGuardHome/update_sites.sh
И сделать его исполняемым:
chmod +x update_sites.sh
Для ручного запуска:
./update_sites.sh
В результате получим список подобного вида
Настройка автоматического обновления
Для автоматического обновления каждый день в 6 утра добавим событие в cron, но сначала установим его:
opkg update
opkg install cron
/opt/etc/init.d/S10cron start
nano /opt/etc/crontab
Добавить строку:
0 6 * * * root /opt/etc/AdGuardHome/update_sites.sh