Skip to content

8hrsk/zapret-docker-proxy

Repository files navigation

Proxy сервер с bol-van/zapret в Docker

Описание

Данный проект является оберткой над bol-van/zapret

Цель проекта — упростить развёртывание собственного прокси-сервера на удалённом сервере или на вашем собственном устройстве.

✨ Возможности

  • Быстрое развёртывание готового контейнера.
  • DNSCrypt.
  • Прокси с авторизацией.
  • Проброс / блокирование локальной сети.
  • (⚠️ реализовано частично) Автоматическая генерация конфигурационных файлов для zapret.
  • Лёгкость использования без необходимости глубокого понимания сетевых технологий.

Примечание: Я не являюсь сетевым специалистом, поэтому не смогу помочь с тонкой настройкой zapret. Однако, при необходимости, могу добавить новый функционал. Если Вам нужна помощь с настройкой zapret или Вы обнаружили проблему, связанную конкретно с zapret, то ищите решеение в оригинальном репозитории bol-van/zapret.

❓ Быстрый запуск

Для быстрого запуска выполните следующие шаги:

  1. Установите docker и docker-compose на сервер:

    sudo apt-get update && sudo apt-get install docker docker-compose

    После установки необходимо добавить текущего пользователя в группу docker и перезапустить систему

  2. Убедитесь, что docker настроен верно в вашей системе:

    docker run hello-world

    В случае ошибки прав доступа, добавьте текущего пользователя в группу docker и перезапустите систему

  3. Клонируйте репозиторий на сервер:

    git clone https://github.com/8hrsk/zapret-docker-proxy.git
    cd zapret-docker-proxy
  4. Запустите скрипт quickstart.sh:

    ./quickstart.sh

    Этот скрипт автоматически развернёт проект в системе, используя дефолтный конфигурационный файл.

⚙️ Создание нового конфигурационного файла

Вручную

Если вы знаете какие параметры подходят для вашего провайдера, укажите их в NFQWS_OPT в файле config и пересобирите контейнер при помощи скрипта ./start.sh

Помочь в определении параметров может скрипт ./blockcheck.sh. Запустите его:

./blockcheck.sh

и дождитесь окончания анализа. Результат выполнения будет сохранён в файл configuration/blockcheck.log

Проанализируйте раздел * SUMMARY и выберите подходящие для Вас параметры. Укажите их в NFQWS_OPT в файле config и пересобирите контейнер при помощи скрипта ./start.sh

Автоматически

⚠️ Автоматическая генерация конфиг-файла реализована частично

Если требуется сгенерировать новый конфигурационный файл автоматически, выполните следующие шаги:

  1. Запустите скрипт generate_config.sh:

    ./generate_config.sh
  2. Скрипт выполнит поиск подходящих параметров для zapret и создаст новый конфигурационный файл. При этом старый конфигурационный файл будет сохранён для резервного использования.

🧱 Локальная сеть

Вы можете разрешить / запретить доступ к локальной сети через прокси. Для этого:

  1. Укажите шлюз и маску подсети в файле configs/squid.conf на строке acl to_localnet dst

  2. Замените строку

    http_access deny to_localnet
    

    на

    http_access allow to_localnet
    

    чтобы разрешить доступ к локальной сети, и наоборот

  3. Пересоберите и запустите контейнер:

    ./start.sh

🪪 Прокси с авторизацией

Для настройки прокси с авторизацией, в начале необходимо отредактировать файл configs/squid.conf

  1. Закомментируйте строки

    http_access allow all
    

    и

    http_access allow sitewhitelist
    
  2. Раскомментируйте все строки начиная с

    auth_param basic program ...
    ...
    
  3. Пересоберите и запустите контейнер:

    ./start.sh
  4. Запустите скрипт создания пользователя:

    docker exec -it zapret-proxy /etc/squid/add_user.sh

    ⚠️ В качестве имени пользователя допускается только стандартный формат имён пользователей Linux (латинские буквы a-z в нижнем регистре + цифры от 0 до 9)

  • Для удаления пользователя запустите скрипт:

    docker exec -it zapret-proxy /etc/squid/delete_user.sh

🛑 Остановка контейнера

  • Для остановки, запустите скрипт stop.sh:

    ./stop.sh

🫂 Обратная связь и улучшения

Если вы обнаружили проблему или у вас есть идеи для улучшения функционала, создайте Issue или Pull Request в репозитории

About

Proxy server with bol-van/zapret DPI bypass

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •