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

gSpotx2f
2020-06-19 20:49:06 +03:00
parent 59c203e769
commit a2f02ce579
@@ -0,0 +1,113 @@
**1. Убедитесь, что ruantiblock включен**
Выполните в консоли :
/usr/bin/ruantiblock status
Вывод статуса не должен содержать ошибок. Если есть ошибки связанные с iptables или ipset - выполните:
/usr/bin/ruantiblock destroy
rm /var/run/ruantiblock*
rm /etc/ruantiblock/var/* # для стандартной установки
rm /var/ruantiblock/* # для установки в /var
И запустите заново:
/usr/bin/ruantiblock start
/usr/bin/ruantiblock update
При перезапуске службы "firewall" в OpenWrt удаляется вся конфигурация iptables и, соответственно, ruantiblock приходит в выключенное состояние. Поэтому, если в системе используются какие-либо скрипты с перезапуском "firewall", в них следует прописать и перезапуск ruantiblock: `/usr/bin/ruantiblock restart`.
**2. Проверьте запущен ли Tor или VPN клиент**
Можно увидеть в консоли:
ps | grep tor
или
ps | grep openvpn
Также убедитесь, что сервисы стартуют при запуске системы:
/etc/init.d/tor enable
или
/etc/init.d/openvpn enable
**3. Ошибка маршрутизации VPN (VPN ROUTING ERROR)**
Такая надпись появляется в выводе статуса (`/usr/bin/ruantiblock status`) в том случае, если отсутствует, необходимая для работы ruantiblock, запись в таблице маршрутизации. Это может быть связано, во-первых, с отсутствием VPN соединения (отключен клиент OpenVPN и пр.). Во-вторых, с тем, что при поднятом VPN соединении не добавляются правила маршрутизации: проверьте наличие скрипта `/etc/hotplug.d/iface/40-ruantiblock` и значение параметра определяющего используемый VPN интерфейс:
uci get ruantiblock.config.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](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B8-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-https-dns-proxy) и пр.).
**6. Проверьте попадает ли трафик к заблокированным сайтам в цепочку ruantiblock в iptables**
Выполните в консоли :
/usr/bin/ruantiblock status
Блок `Iptables rules:` содержит счётчики правил для IP адресов, CIDR-диапазонов и IP адресов, которые добавляет dnsmasq. При запросе заблокированного сайта или IP соответствующие счётчики растут.
**7. Проверьте добавляет ли dnsmasq IP адреса заблокированных доменов из своего конфига в ipset `ruantiblock-dnsmasq`**
Выполните в консоли :
/usr/bin/ruantiblock status
В блоке `Ip sets:` сет с именем `ruantiblock-dnsmasq`. При запросе заблокированного домена dnsmasq разрешает доменное имя в IP адрес и помещает его в ipset. Счётчик `Number of entries:` у сета `ruantiblock-dnsmasq` должен увеличиваться при запросе новых заблокированных ресурсов. Далее, спустя некоторое время, этот IP адрес удаляется из сета.
Можно увидеть сами IP адреса (если они есть в данный момент):
ipset list ruantiblock-dnsmasq
Если при обращении к заблокированному домену dnsmasq не добавляет его IP адрес в свой ipset, то причиной может быть отсутствие обращений к dnsmasq (DNS-серверу) со стороны ОС Вашего ПК (или другого устройства). Локальный резолвер ОС часто кэширует полученные адреса и не делает запрос, следовательно, dnsmasq не добавляет IP адрес в ipset и вы получаете "заглушку" от провайдера для данного сайта. По истечении таймаута записи в кэше всё опять работает правильно. В этой ситуации можно либо подождать пока запись будет удалена из кэша по таймауту, либо очистить DNS-кэш ОС. Для Windiows всё просто: `ipconfig /flushdns`, для других ОС сложнее - ищите в google. Также, не повредит очистить кэш браузера. Попробуйте больше разных заблокированных сайтов для тестирования...
**8. Если возникают проблемы с нехваткой оперативной памяти**
На девайсах с оперативной памятью в 128мб и менее может проявляться ошибка нехватки памяти при обновлении блэклиста. Реестр постоянно растёт, памяти начинает не хватать... Например, при использовании lua-парсера это выглядит как сообщение `not enough memory` и приводит к краху интерпретатора. Или же роутер просто зависает. Если при обновлении блэклиста в логе роутера появляются ошибки `Module error!` или `kernel: Out of memory` с трэйсами ядра, попробуйте выполнить в консоли команду (создание конфигов без перезагрузки dnsmasq и без изменения конфигурации ipset):
/usr/bin/ruantiblock.sh data-files
Присутствие подобных ошибок или зависаний говорит о наличии проблемы. Во-первых, нужно включить опцию сброса ipset перед обновлением:
uci set ruantiblock.config.ipset_clear_sets="1"
uci commit ruantiblock
Во-вторых, необходимо подключить SWAP-файл (или раздел) на внешнем носителе (конечно, если это возможно на вашем устройстве). В-третьих, стоит попробовать оптимизировать работу модуля-парсера и сократить количество записей (подробнее [здесь](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%A1%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D1%8B-%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D0%B8-%D1%81%D0%BE%D0%BA%D1%80%D0%B0%D1%89%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B0-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B5%D0%B9-%D0%B2-%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B5-%D0%B1%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BE%D0%BA)). Далее, если подключен внешний носитель ([extroot](https://openwrt.org/docs/guide-user/additional-software/extroot_configuration)), можно попробовать использовать [python-модуль](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/Python-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C), он стабильнее работает в условиях проблем со свободной памятью. Это не является полным решением проблемы, но позволит немного сократить потребление памяти.
Следующая конфигурация даёт самый минимальный размер списка блокировок (и требует менее всего памяти):
uci set ruantiblock.config.ipset_clear_sets="1"
uci set ruantiblock.config.bllist_mode="ip"
uci set ruantiblock.config.bllist_source="antifilter"
uci commit ruantiblock
Здесь минимальный список IP адресов, приведённых к подсетям /24 (https://antifilter.download/list/allyouneed.lst). Недостаток в том, что в этих диапазонах большое количество не заблокированных адресов, и трафик к ним будет также проходить через прокси. В общем, в случае нехватки оперативной памяти, это возможный вариант...