Pull to refresh
167
8
Юрий Юрьев @Kyrie1965

Пользователь

Send message
Основное направление и ключевые изменения я подсказал. Вы просите детальный ответ с пошаговой инструкцией. Я не смогу, к сожалению, вам его дать, т.к. для этого нужно всё смоделировать у себя и вам описать (это требует времени, возможности и желания).
AndroiTS GPS Test (она почему-то давно удалена из Google Play Store, ставить из apk) — com.androits.gps.test.pro.
Роскомнадзор опять публично буянит и по распоряжению сверху, грозится заблокировать сайт BBC (обиделись). Но вы знаете, что делать, в час X, если этот сайт вам нужен:

1). Добавили в unblock.txt сайт bbc.com.
2). Ввели unblock_update.sh.
Вам необходимо в шаге 9 пометить все пакеты с адресатами из unblock и немного подправить сам скрипт:

#!/bin/sh

[ "$type" == "ip6tables" ] && exit 0
[ "$table" != "mangle" ] && exit 0
[ -z "$(iptables -t mangle -L | grep unblock)" ] || exit 0

iptables -w -A PREROUTING -t mangle -m set --match-set unblock dst,src -j MARK --set-mark 1

exit 0


Если вы перехватываете DNS-запросы из локальной сети, то добавление правил будет тоже с доработкой (лучше сделать отдельным скриптом).

При поднятии интерфейса (нужно сделать скрипт на событие) выполнить команды ($IFNAME — имя интерфейса), которые завернут все пакеты с меткой в нужный интерфейс:

echo 0 > /proc/sys/net/ipv4/conf/$IFNAME/rp_filter
ip route flush table 1
ip rule del table 1
ip rule add fwmark 1 table 1 priority 1000
ip route add default dev $IFNAME table 1

Вот тут есть небольшой пример.

При подключении к VPN обязательно запретить роутить весь трафик через него и запретить получение маршрутов (route-noexec для OpenVPN).

Все ресурсы из unblock.txt будут маршрутизироваться через VPN. Остальные через основной канал. В unblock.txt можно добавить адреса DNS-серверов, чтобы DNS-трафик шёл через VPN, тогда можно не использовать dnscrypt (если провайдер фильтрует DNS-трафик).
Во-первых, этот метод не предназначен для того, чтобы взять список из тысяч доменов (например, весь список из реестра заблокированных ресурсов) и разблокировать его. Суть и назначение этого метода в другом. Используйте другой метод для вашей задачи, например, изначальный вариант от Zolg (который используется только dnsmasq и формирует список всех заблокированных ресурсов из реестра; например тут в конце статьи можно прочесть реализацию для Keenetic) или бесплатный OpenVPN АнтиЗапрет.

Во-вторых, с чего вы взяли что unblock_ipset завершил свою работу, разблокировка могла сработать через dnsmasq, а скрипт резолвинга доменов продолжает работать. Хоть он должен делать всё в фоне, но мало ли.

В-третьих, были случаи когда на Keenetic у dropbear в Entware слетает порт. Измените кофигурационный файл dropbear через SMB.
Используйте эту версию Tor с соответствующим конфигурационным файлом. Или выключите и используйте версию из Entware (как по инструкции).
Всё верно. Они перестанут работать (не будут резолвиться на стороне клиентов), как и реклама, которая на них ссылается.

Тут нужно быть аккуратным, потому что список рубит лишнее, и что-то нужное может перестать работать. Например, у меня kinozal.tv отвалился с таким подходом.
Спасибо.

Вот вариант для тех, кто действует по инструкции из статьи (единый вариант для Padavan и Keenetic OS)
Выполните команды:

opkg update
opkg install curl ca-certificates ca-bundle
touch /opt/etc/adblock.dnsmasq

В 10-м шаге инструкции (уже после того, как вы проделаете все действия по инструкции и у вас всё работает, как нужно) добавьте в конфигурационный файл dnsmasq.conf строку:

conf-file=/opt/etc/adblock.dnsmasq

Создайте скрипт adblock_update.sh:

mcedit /opt/bin/adblock_update.sh

Вставьте (Shift+Insert) содержимое:

#!/bin/sh

curl --compressed https://cdn.raletag.gq/rueasyhosts.txt https://adaway.org/hosts.txt \
| awk '{sub("\r$", ""); sub("^www\\.", "", $2); if ($0 && $0 !~ /^#/ && $2 && $2 !~ /^$/ && $2 != "localhost") print "server=/." $2 "/";}' \
| sort -u > /opt/etc/adblock.dnsmasq

if [ ! -e "/opt/etc/init.d/S56dnsmasq" ]; then
  restart_dhcpd
else
  /opt/etc/init.d/S56dnsmasq restart
fi

Дайте права на исполнение:

chmod +x /opt/bin/adblock_update.sh

Запустите скрипт adblock_update.sh (вы можете запускать его при необходимости обновления списка доменов с рекламой):

adblock_update.sh

Чтобы отключить блокировку рекламных доменов, удалите строку conf-file=/opt/etc/adblock.dnsmasq из dnsmasq.conf.
После того, как настроите dnscrypt, выполните 10-й шаг настроек повторно. Только удалите поле «server=8.8.8.8» и добавьте:

no-resolv
server=127.0.0.1#9153

Перезапустите dnsmasq.

На Padavan:
restart_dhcpd

На Keenetic:
/opt/etc/init.d/S56dnsmasq restart

dnsmasq начнёт использовать только dnscrypt для резолвинга.
Т.е. это выльется в реальности в кучку скриптов и никаких «буквально настроить мышкой» там нет. В итоге, мы имеем, что человеку, у которого уже есть маршрутизатор Keenetic или с прошивкой Padavan, на свой маршрутизатор надо поставить OpenWrt, арендовать сервер с ежемесячной оплатой, настроить его, настроить маршрутизатора с OpwenWrt (по инструкции, которой по сути нет, при этом действий будет не меньше и не проще, чем описанное в статья, и не охватывает существенные частные случаи, т.к. из ваших же данных вы оперируете только IP, а не доменами, например нет внесения IP во множество при резолвинге). Вывод — ваши слова не соответствуют действительности, и OpenWrt никакой выгоды не несёт для конкретной реализации, описанной в статье (затрата большего количества усилий, времени, денег, и при этом получите результат по эффективности хуже или, как максимум, не лучше). Какое бы крутое ядро с upstream там не было, это не играет никакой роли для конкретной задачи. Скрипач не нужен.
Если не учитывать, что это банальный ввод в заблуждение, аналогично, можно сказать, что обход блокировок делается в два клика не любом маршрутизаторе вообще — покупаете быстрый VPN-сервер и добавляете его в настройки маршрутизатора и гоните весь трафик через него — готово.

А что вы будете делать с сайтами, которые меняют свой IP (и вы их заведомо не знаете)?
Расскажите, пожалуйста, как реализовать указанный в статье (или подобный) метод выборочного обхода блокировок «буквально мышкой» в OpenWrt.
Инструкция заточена под IPv4 (под IPv6 требуется доработка). У rutracker есть адрес IPv6 2a02:4680:22::214. Если обратиться к нему, то запрос пойдёт мимо обхода блокировок и будет заблокирован провайдером (если провайдер умеет блокировать IPv6).
Тема прошивки Padavan очень обширная, ещё есть особенности на разных устройствах, ещё есть особенности ранних версий. Все это напрямую не относится к самой статье. Тема Keenetic тоже обширная, и тоже в своё время была поддержка Entware-ng (и остаётся без переустановки). В общем, достаточно знать, что на свежих прошивках обоих типов устройств всё отрабатывается по инструкции идеально. Кто захочет, найдёт упоминание тут в комментариях.

По второму вопросу не подскажу.
Самая свежая версия от 05.11.2018 (commit 32a93db). Установка стандартная — запускаете PROMETHEUS, обновляете исходный код, собираете прошивку и устанавливаете её. Буквально несколько кликов и минуту времени (не считая несколько десятков минут, зависящие от мощности вашего компьютера, которые будут потрачены на компиляцию прошивки). Всё очень просто.

Затем форматируете (чтобы избавиться от старой версии Entware-ng) раздел/диск/внутреннюю память под Entware для установки свежей версии.
Случайно нажал «Отклонить» на комментарии человека (автоматом воспринял кнопку, как «Ответить»). Прошу прощения у него.

У него всё заработло на Padavan, но был вопрос относительно dnscrypt-proxy2 — его нет в Entware. В чём дело?

У вас используется старая версия Entware-ng, в которой пакеты и их список уже не обновляются. И пакета dnscrypt-proxy2 там нет (только первая версия). Вам нужно обновить прошивку до последней (Entware-ng было переключено на Entware в прошивке от 10.05.2018, commit 8ec3a10) и заново настроить Entware, удалив предыдущую установку Entware-ng. Пакет dnscrypt-proxy2 появится.
Если они вам нужны, используйте метод обхода блокировок из статьи и добавляйте эти и другие нужные именно вам домены в unblock.txt.
7-zip.org действительно не работает. Добавил его в unblock.txt, заработал сразу.

Information

Rating
641-st
Location
Абу Даби, Абу Даби, О.А.Э.
Date of birth
Registered
Activity

Specialization

Project Manager, Product Manager
Lead