Skip to content

Если после установки возникли проблемы...

gSpot edited this page Nov 2, 2024 · 12 revisions

1. Убедитесь, что ruantiblock включен

Выполните в консоли:

/usr/bin/ruantiblock status

Вывод статуса не должен содержать ошибок. Если есть ошибки связанные с nftables - выполните:

/usr/bin/ruantiblock destroy
rm /var/run/ruantiblock*
rm /tmp/ruantiblock/*

И запустите заново:

/usr/bin/ruantiblock start
/usr/bin/ruantiblock update

2. Проверьте запущен ли Tor или VPN клиент

Можно увидеть в консоли:

ps | grep tor

или

ps | grep openvpn

Также убедитесь, что сервисы стартуют при запуске системы:

/etc/init.d/tor enable

или

/etc/init.d/openvpn enable

В VPN конфигурации проверьте настройки межсетевого экрана: для устройства tun0 должен быть создан интерфейс (например, с названием VPN) и добавлен в зону wan (или зону созданную специально для VPN), иначе трафик из локальной сети не сможет попасть в VPN тунель. Это относится и к VPN укзанным в настройках экземпляров записей пользователя.

3. Ошибка маршрутизации VPN (VPN ROUTING ERROR)

Такая надпись появляется в выводе статуса (/usr/bin/ruantiblock status) в том случае, если отсутствуют необходимые для работы ruantiblock записи в таблице маршрутизации. Это может быть связано, во-первых, с отсутствием VPN соединения (отключен клиент OpenVPN и пр.) у любого из VPN указанных в настройках (включая записи пользователя). Во-вторых, с тем, что при поднятом VPN соединении не добавляются правила маршрутизации: проверьте наличие скрипта /etc/hotplug.d/iface/40-ruantiblock и значение параметра определяющего используемый VPN интерфейс:

uci get ruantiblock.config.if_vpn

Для экземпляров записей пользователя настроенных в режиме VPN (примере первый экземпляр list1):

uci get ruantiblock.list1.u_if_vpn

Далее, для решения проблемы, достаточно выполнить:

/usr/bin/ruantiblock restart

4. Ошибка при обновлении блэклиста

Когда при попытке обновления командой /usr/bin/ruantiblock update в консоли (логе) появляется сообщение Error! Another instance of update is already running - это означает, что присутствует файл другого процесса обновления (/var/run/ruantiblock_update.pid), который или выполняется в данный момент, или ранее завершился некорректно. Если в данный момент обновление уже не выполняется, запустите новый процесс обновления командой (удалит старый pid-файл):

/usr/bin/ruantiblock force-update

Разумеется, можно удалить и вручную:

rm /var/run/ruantiblock_update.pid

5. Убедитесь, что корректно разрешаются DNS-имена

Провайдеры на своих DNS-серверах часто ограничивают или изменяют сторонний DNS-трафик (DNS-спуфинг). Поэтому необходима замена провайдерского DNS-сервера на сторонний и обязательное применение DNS-шифрования (dnscrypt-proxy, https-dns-proxy и пр.). Очень желательно настроить перехват стороннего DNS-трафика хостов локальной сети (в последних версиях https-dns-proxy такая опция уже встроена).

6. Проверьте попадает ли трафик к заблокированным сайтам в ruantiblock (цепочки nftables)

Выполните в консоли:

/usr/bin/ruantiblock status

Блок Transit trafic содержит счётчики правил для всех активных экземпляров. Экземпляр -main- - основной блэклист. При запросе заблокированного сайта или IP соответствующие счётчики растут.

7. Проверьте добавляет ли dnsmasq IP адреса заблокированных доменов из своего конфига в nftset d

При запросе заблокированного домена dnsmasq разрешает доменное имя в IP адрес и помещает его в nftset. Далее, спустя некоторое время, этот IP адрес удаляется из сета.

Выполните в консоли:

nft list set ip r d

В выводе можно увидеть эти IP адреса (в блоке elements = { ... }), если они есть в данный момент. Также, можно смотреть добавляемые dnsmasq IP адреса в веб-интерфейсе на странице статистике в таблице Dnsmasq в реальном времени, в т.ч. для всех активных экземпляров записей пользователя.

Если при обращении к заблокированному домену dnsmasq не добавляет его IP адрес в свой nftset, то причиной может быть отсутствие обращений к dnsmasq (DNS-серверу) со стороны ОС вашего ПК (или другого устройства). Локальный резолвер ОС часто кэширует полученные адреса и не делает запрос, следовательно, dnsmasq не добавляет IP адрес в nftset и вы получаете "заглушку" от провайдера для данного сайта. По истечении таймаута записи в кэше всё опять работает правильно. В этой ситуации можно либо подождать пока запись будет удалена из кэша по таймауту, либо очистить DNS-кэш ОС. Для Windiows всё просто: ipconfig /flushdns, для других ОС сложнее - ищите в Google. Также, не повредит очистить кэш браузера. Попробуйте больше разных заблокированных сайтов для тестирования...

8. Если возникают проблемы с нехваткой оперативной памяти

На девайсах с оперативной памятью в 128Мб и менее может проявляться ошибка нехватки памяти при обновлении блэклиста. Размер блэклиста постоянно растёт, памяти начинает не хватать... Например, при использовании lua-парсера это выглядит как сообщение Killed:

root@OpenWrt:~# /usr/bin/ruantiblock update
ruantiblock update...
Killed
Module run attempt 1: failed [/usr/libexec/ruantiblock/ruab_parser.lua]

и приводит к краху интерпретатора. Или же роутер просто зависает. Если при обновлении блэклиста в логе роутера появляются ошибки Module error! или kernel: Out of memory с трэйсами ядра, попробуйте выполнить в консоли команду (создание конфигов без перезагрузки dnsmasq и без изменения конфигурации nftables):

/usr/bin/ruantiblock.sh data-files

Присутствие подобных ошибок или зависаний говорит о наличии проблемы. Во-первых, можно попробовать подключить SWAP-файл (или раздел) на внешнем носителе (конечно, если это возможно на вашем устройстве). Во-вторых, подобрать настройки для оптимизации работы модуля-парсера и сократить количество записей в блэклисте (подробнее здесь). Далее, если подключен внешний носитель (extroot), можно попробовать использовать python-модуль, он стабильнее работает в условиях проблем со свободной памятью. Это не является полным решением проблемы, но позволит немного сократить потребление памяти.

Следующая конфигурация даёт самый минимальный размер списка блокировок (и требует менее всего памяти):

uci set ruantiblock.config.nftset_clear_sets="1"
uci set ruantiblock.config.bllist_preset="antifilter-ip"
uci set ruantiblock.config.bllist_ip_limit="0"
uci set ruantiblock.config.bllist_summarize_ip="0"
uci set ruantiblock.config.bllist_summarize_cidr="0"
uci commit ruantiblock

Здесь минимальный список IP адресов, приведённых к подсетям /24 (https://antifilter.download/list/allyouneed.lst). Недостаток в том, что в этих диапазонах большое количество не заблокированных адресов, и трафик к ним будет также проходить через прокси. В общем, в случае нехватки оперативной памяти, это возможный вариант...

Ссылку на список https://antifilter.download/list/allyouneed.lst также можно добавить в удалённые записи пользователя (формат файла совместим) и не использовать модуль-парсер вообще.

Ну и, естественно, можно использовать свои собственные списки заблокированных хостов и решать самостоятельно какое количество записей будет в вашем блэклисте.