Неофициальный docker-контейнер АнтиЗапрета

Кажется вы сразу стали заниматься оверинженерингом. Мы же на старте и так запускаем скрипт, можно просто его разделить. И в основном делать проверку - если файл пустой, выполняем скрипт2, который и заполнит.
А в скрипт2, сделать функцию принимающую на вход строку вида “если строка в файле есть то скип, иначе вставить” и все кастомные домены которые хочется автоматом проставлять добавлять через нее. А в инструкциб по обновлению контейнера добавить:
если хотите актуализировать список2 выполните

docker exec antizapret-vpn  bash -c "cd /root/antizapret && ./script2.sh"

неплохо иметь готовый скрипт для включения/отключения списка заблокированного ркн. Больно уж много там всякого мусора помимо ошибочно заблокированного, иногда хочется иметь чисто свой список и всё)

в readme git clone https://github.com/xtrime-ru/antizapret-vpn-docker.git antizapret подразумевает что на целевой машине есть git, но это далеко не всегда так, и не всегда хочется его тянуть.
Можно же просто вытянуть архив и распаковать в текущую папку

curl -L https://api.github.com/repos/xtrime-ru/antizapret-vpn-docker/tarball/master  | tar -xz --strip 1

Я так понимаю, что поддержку tls-crypt не вернули? Так же не сделали фикс для AdguardHome. Так же не вижу смысла в kresd добавлять для РФ доменов другой DNS, ибо при использовании AdguardHome, лучше в нём уже указывать и там же будет фильтрация, иначе фильтрация не будет работать для этих доменов.

а у меня наоборот все работает кроме ютуб

Пропустил. Сделаем.

Это нужно, когда DNS не переопределяется. Сейчас добавил отдельную переменную ADGUARD, что бы выключала этот фикс.

Забыл про него. Щас верну и сделаю включение через переменную.

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

Для того что бы правки сохранялись при пересозданиях контейнера, есть два варианта:

  1. сделать docker commit
  2. поправить файлы на хосте и пересобрать образ командой docker compose build.

В любом случае делать после этого docker compose pull нельзя, иначе будет загружен образ без ваших изменений и следующая команда docker compose up -d пересоздаст контейнер и затрет изменения.

При этом есть еще смонтированные папки (keys, config, .adguard). Они хранятся только на хосте и не зависят от перезагрузок и пересозданий контейнера.

Да. Список опциональных ENV переменных постоянно растет: GitHub - xtrime-ru/antizapret-vpn-docker: Docker container with antizapret-vpn for selfhosting.

Закоментировали, оставили в качестве примера.

Да. Я предпочитаю гит, и его использование позволяет обновлять проект в последствии.
Если пользователь не хочет использовать гит, то вероятно имеет высокую квалификацию и может смело игнорить инструкцию :slight_smile:
PS. curl тоже из коробки отсутствует в убунте :wink:

Вернул tls_crypt с отдельной ENV переменной для включения. По умолчанию выключено, для совместимости.

На убунту 20.04 почему то без этой опции не работал антизапрет. В новой версии закоментил, но если у кого то будут проблемы на старых системах - то надо раскоментить.

Получается что на 24.04 с этой опцией не работал.

Сейчас всё отлично.

у меня в минимальной нашелся. но может я сам когда то его накатил, не вспомню) curl/wget один фиг)

я тоже) но там где просто артефакты перекидывать можно и без него. и на прод не потянешь же.
в данном случае это просто вкусовщина, согласен)

Так а что на счёт скрипта/переменной для отключения списка ркн и работы только с кастомным?

Закину в бэклог, но не скоро руки дойдут. Но если есть желание, то буду рад Pull Request.

Да, спасибо, разобрался. Форкнулся, скачал на локальную WSL, поправил свою версию (с апстримом у меня 192.168.100.1 конфликтует, приходится править), сохранился через docker save, перенес на VPS и пока живу на ней.

Странные дела, с мобилки эта версия работает, а LXD-шная нет, даже без SCRAMBLE и TLS_CRYPT. Хотя вроде как то же самое все, ну разве что DCO включено.

А не хотите PullRequest сделать? Можно вынести в ENV переменную tcp и udp адреса и менять их в исходниках через sed в скрипте init.sh

Здравствуйте, xtrime! Я впервые занимаюсь установкой VPN на свой сервер. Выбрал вашу сборку и сделал все по инструкции, но возникла следующая проблема: заблокированные сайты открываются отлично, а вот обычные нет (ошибка ERR_NAME_NOT_RESOLVED). Сначала подумал, что проблема с роутером, но установив openVPN на телефон, подключившись через мобильную сеть и загрузив туда файл с настройками, увидел ту же ситуацию. В чем может быть проблема, подскажите? Какие настройки поменять?

Заработало, но так и не понял в чем была проблема. Просто переустановил, но только на Ubuntu 24.04, а не 20.04

Всем привет.

А вот такие ошибки не сильно страшны? На интерфейсе dco видно

dmesg
[ 340.674639] ovpn_dco_v2: loading out-of-tree module taints kernel.
[ 340.674649] ovpn_dco_v2: module verification failed: signature and/or required key missing - tainting kernel
[ 340.760790] OpenVPN data channel offload (ovpn-dco) 0.0+git20231103 – (C) 2020-2023 OpenVPN, Inc.


root@antizapret:~# ip -details link show

2: vpn-tcp: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/none  promiscuity 0  allmulti 0 minmtu 68 maxmtu 65463
    **ovpn-dco** addrgenmode random numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 tso_max_size 65536 tso_max_segs 65535 gro_max_size 65536
3: vpn: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/none  promiscuity 0  allmulti 0 minmtu 68 maxmtu 65463
    **ovpn-dco** addrgenmode random numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 tso_max_size 65536 tso_max_segs 65535 gro_max_size 65536

Да, у меня тоже ругается на верификацию модуля, но это никак не влияет на работу. Есть разные уровни проверки в ядре, на самом жестком такие модули будут отключаться: https://wiki.gentoo.org/wiki/Signed_kernel_module_support

Но судя по выводу ip - модуль работает, значит предупреждение можно игнорировать.

Связано как раз со старой версий хостовой системы. Для ubuntu20.04 надо было раскоментировать эти строки: antizapret-vpn-docker/docker-compose.yml at master · xtrime-ru/antizapret-vpn-docker · GitHub

#    dns:
#      - 1.1.1.1

попрошу еще заодно адрес в ключах (опционально, конечно же) прописывать не IP адрес, а доменное имя. Ну или если как-то можно сделать - подскажите, пожалуйста.

IP адреса самого OpenVPN да, топово было б менять вручную. :slight_smile:

Спасибо. Возник еще один момент: на айфоне очень долго прогружаются видео через приложение Youtube. Хотя через Safari на youtube.com заходит быстро и все видео грузятся отлично. Также все хорошо и на ПК…

В личке с Profile - Tyman - NTC сейчас обсуждаем mtu. Он предположил, что несмотря на рекомендации использовать mtu 1420, это может создавать проблемы в некоторых условиях.

Попробуйте убрать mtu из конфигов сервера ./keys/server/antizapret.conf или ./keys/server/antizapret-tcp.conf и из ovpn.
Перезапустите контейнер и проверьте снова.

У меня , после обновления последнего(3.2.1) так и не работают многие сайты , яндекс маркет например

В логе роутера посыпались ошибки
Aug 21 15:54:22 ndnproxy
Info: [CD4F] answer from wrong socket (got from 19 9.9.9.10:53 [0] to 192.168.104.2:59021, exp from 21 9.9.9.10:53 to 52426).

несмотря на рекомендации использовать mtu 1420, это может создавать проблемы в некоторых условиях

Похоже да. У меня к одному серверу подключены два кинетика из разных точек РФ. Один нормально, а второй постоянно рвёт соединение

[E] Aug 21 16:01:40 OpenVPN0: AEAD Decrypt error: cipher final failed 
[E] Aug 21 16:01:47 OpenVPN0: Core::Syslog: last message repeated 4 times.
[I] Aug 21 16:01:48 OpenVPN0: [antizapret-server] Inactivity timeout (--ping-restart), restarting

Отключение mtu помогло.