Гид по технологиям

Установка SearXNG: быстро и приватно

• 7 min read • Инфраструктура • Обновлено 27 Nov 2025
Установка SearXNG — приватный поисковик
Установка SearXNG — приватный поисковик

Обложка: установка SearXNG

О чём эта инструкция

В этой статье вы найдёте пошаговое руководство по установке и запуску SearXNG на Debian 11 (пример — VPS от DigitalOcean). Материал включает практические команды, конфигурацию Nginx, включение SSL через Certbot, рекомендации по безопасности и чек-листы для администратора. Если вы хотите минимально собирать личные данные при поиске — это решение для вас.

Сопутствующие поисковые форматы и альтернативные подходы также описаны ниже.

Почему стоит установить SearXNG

Поисковые системы делают поиск по вебу удобным, но часто это платный удобством вашей приватностью: крупные компании анализируют запросы, чтобы строить подробные профили пользователей.

Пример страницы Google My Activity с историями поиска

Если вы цените анонимность — например, журналисты, активисты или просто заботливые о приватности пользователи — частный поисковый инстанс помогает исключить привязку запросов к вашей личности.

Иллюстрация: пример конфиденциальной информации

Самостоятельный хостинг SearXNG гарантирует, что логами сервер будет управлять только владелец инстанса.

Также читайте: 4 способа, как Google отслеживает вас и как это остановить

Что потребуется

Перед началом подготовьте следующее:

  • Полностью квалифицированное доменное имя (FQDN) — например example.com.
  • Сервер, доступный извне: статический публичный IP или арендованный VPS (пример — DigitalOcean droplet).
  • root-доступ или привилегированный sudo-пользователь на сервере.

В примере ниже подразумевается Debian 11 на VPS.

Логотип DigitalOcean и пример droplet

Короткая методология установки (мини-метод)

  1. Создать отдельного пользователя для SearXNG.
  2. Установить системные зависимости (nginx, uwsgi, certbot и т.д.).
  3. Клонировать репозиторий SearXNG и запустить штатный инсталлятор.
  4. Настроить веб-сервер (Nginx) для проксирования к Unix-сокету.
  5. Выпустить SSL-сертификат через Let’s Encrypt.
  6. Проверить работоспособность и настроить мониторинг/логи.

Установка зависимостей SearXNG

Рекомендуется изоляция: создайте системного пользователя для процесса SearXNG. Это уменьшит риск доступа к другим сервисам и файлам сервера.

Примеры команд (скорректированы для корректного выполнения):

# Создание пользователя searx с домашней директорией и оболочкой bash, добавление в группу sudo
sudo useradd -s /bin/bash -d /home/searx -m -G sudo searx
sudo passwd searx

Создание нового системного пользователя searx

Переключитесь на нового пользователя и установите требуемые пакеты:

# Выполните от root или sudo-пользователя
su - searx
# Установка пакетов (выполнять от sudo)
sudo apt update
sudo apt install git nginx iptables iptables-persistent ufw certbot python3-certbot-nginx python3-venv build-essential -y

Установка зависимостей SearXNG через apt

Пояснения:

  • python3-venv и build-essential полезны для виртуального окружения и сборки зависимостей Python.
  • nginx выступает как обратный прокси и веб-сервер.

Настройка брандмауэра (firewall)

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

# iptables: разрешаем входящий HTTP/HTTPS
sudo iptables -I INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
sudo netfilter-persistent save

# ufw: упрощённая настройка
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Настройка правил брандмауэра

Короткие пояснения:

  • netfilter-persistent сохраняет правила iptables между перезагрузками.
  • ufw удобно использовать как простой интерфейс для netfilter.

Важно: если вы управляете сервером через SSH, убедитесь, что правило для порта SSH (обычно 22) не блокируется.

Клонирование и установка SearXNG

Официальный репозиторий содержит утилиту установки, которая автоматизирует большую часть задач.

# Клонируем репозиторий и переходим в каталог
git clone https://github.com/searxng/searxng searxng && cd searxng

# Запускаем инсталлятор (выполняется с sudo)
sudo -H ./utils/searxng.sh install all

Страница GitHub SearXNG и пример клонирования

Во время установки скрипт может запрашивать подтверждение на установку дополнительных пакетов — отвечайте “Y” для продолжения.

Пример запроса подтверждения установки пакетов

Совет: если вы планируете кастомизировать плагины или подключать специфичные движки — сначала установите всё в тестовом окружении.

Конфигурация SearXNG

SearXNG сам по себе — это служба, принимающая запросы и возвращающая результаты. Для взаимодействия с браузером нужен веб-сервер (Nginx или Apache). В этой инструкции — настройка для Nginx.

SearXNG: сервис работает и обрабатывает запросы

Настройка Nginx

Создайте новый конфиг в /etc/nginx/sites-available/:

sudo nano /etc/nginx/sites-available/searxng

Пример базовой серверной конфигурации для проксирования к Unix-сокету uwsgi:

server {
    # Порты
    listen 80;
    listen [::]:80;

    # Домен
    server_name yetanothersearxserver.xyz;

    # Логи: /dev/null — чтобы не сохранять запросы на диск
    access_log /dev/null;
    error_log  /dev/null;

    # Проксирование к uwsgi (socket), путь зависит от инсталляции
    location / {
        uwsgi_pass unix:///usr/local/searxng/run/socket;
        include uwsgi_params;

        uwsgi_param    HTTP_HOST             $host;
        uwsgi_param    HTTP_CONNECTION       $http_connection;

        # см. flaskfix.py — передаём схему и путь
        uwsgi_param    HTTP_X_SCHEME         $scheme;
        uwsgi_param    HTTP_X_SCRIPT_NAME    /searxng;

        # см. limiter.py — реальные IP клиента
        uwsgi_param    HTTP_X_REAL_IP        $remote_addr;
        uwsgi_param    HTTP_X_FORWARDED_FOR  $proxy_add_x_forwarded_for;
    }
}
  • Параметр listen указывает порты, которые прослушивает Nginx.
  • server_name должен содержать ваш FQDN.
  • access_log и error_log можно направить в /dev/null, если вы не хотите хранить логи. Рекомендуется настроить ротацию логов для продакшена.

После сохранения активируйте сайт и перезагрузите Nginx:

sudo ln -s /etc/nginx/sites-available/searxng /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Пример конфигурации Nginx для SearXNG

Включение SSL (Let’s Encrypt) и активация SearXNG

Шифрование HTTPS критично для приватных поисковых инстансов — оно защищает запросы от перехвата по сети.

Иллюстрация SSL-сертификата и защищённого соединения

Выпуск сертификата через certbot + nginx:

sudo certbot --nginx -d yetanothersearxserver.xyz

Команда настроит редиректы и обновит конфигурацию Nginx.

Затем перезагрузите сервисы:

sudo systemctl reload nginx
sudo service uwsgi restart searxng

Если uwsgi установлен как systemd-сервис, можно использовать systemctl restart uwsgi@searxng или другую единицу, соответствующую вашей инсталляции.

Тестирование и базовая проверка

  1. Откройте в браузере https://ваш-домен/ и убедитесь, что загружается интерфейс SearXNG.
  2. Выполните несколько поисковых запросов и проверьте поведение (время ответа, источники результатов).
  3. Просмотрите текущие процессы: systemctl status searxng или ps aux | grep searx.
  4. Если что-то не работает, смотрите логи uwsgi и nginx (если вы не сбрасываете их в /dev/null).

Часто задаваемые вопросы

Можно ли обновлять SearXNG после установки?

Да. Обновление производится утилитой из репозитория. Пример команды:

sudo /home/$USER/searxng/utils/searxng.sh instance update

Появилось сообщение, что Redis недоступен. Упала ли установка?

Нет — установка могла завершиться, но отсутствие Redis повлияет на стабильность. Redis используется для кеша и анти-бота. Рекомендуется установить и запустить Redis и перезапустить инстанс. Если нужно удалить и переустановить:

sudo /home/$USER/searxng/utils/searxng.sh remove all
sudo systemctl --version  # проверяем, что используется systemd

Как увидеть текущее состояние SearXNG?

Встроенная утилита инспекции помогает понять, что делает инстанс:

sudo /home/$USER/searxng/utils/searxng.sh instance inspect

Она покажет логи и статус подчинённых процессов.

Роли и чек-листы (кто что делает)

Администратор сервера:

  • Подготовить домен и DNS A/AAAA записи.
  • Обновить систему и установить зависимости.
  • Настроить firewall и бэкапы.
  • Настроить мониторинг и ротацию логов.

Разработчик / интегратор:

  • Проверить конфигурации движков и плагинов SearXNG.
  • Настроить виртуальное окружение Python при необходимости.
  • Тестировать интеграции с внешними поисковыми движками.

Обычный пользователь:

  • Проверить, что сайт открывается по HTTPS.
  • Проверить корректность результатов и отсутствие персонализации.

Критерии приёмки

  • Сайт открывается по HTTPS и отвечает на поисковые запросы в браузере.
  • Запросы не записываются в системные логи (если вы указали /dev/null) или логируются в управляемые файлы с ротацией.
  • Службы uwsgi и nginx работают и перезапускаются без ошибок.
  • Certbot успешно обновляет сертификаты (cron/timer создан автоматом).

Техническая галерея пограничных случаев (edge cases)

  • NAT с динамическим IP: используйте DDNS или разверните на VPS с публичным IP.
  • Ограниченные ресурсы (Raspberry Pi): уменьшите количество одновременных воркеров uwsgi и используйте swap с осторожностью.
  • Ограничения поставщика хостинга: некоторые хосты блокируют исходящие запросы к целевым поисковым движкам — проверьте политику провайдера.

Безопасность и приватность

  • Минимизируйте хранение логов — отправляйте их в централизованный сервис с шифрованием или в /dev/null для полной «безлоговой» конфигурации.
  • Используйте fail2ban или rate-limiter в Nginx для защиты от брутфорса и бот-атак.
  • Подумайте об изоляции сети (например, запуск SearXNG в LXC/контейнере) для дополнительной безопасности.

План отката и runbook при инциденте

  1. Проблема: SearXNG не отвечает/падает.
    • Проверить статус systemd: sudo systemctl status searxng, sudo journalctl -u searxng -b
    • Проверить логи nginx: sudo tail -n 200 /var/log/nginx/error.log
    • Проверить доступность unix-сокета/uwsgi: ls -l /usr/local/searxng/run/socket
  2. Если проблема связана с недоступностью Redis или зависимостей — восстановить из резервной копии или выполнить sudo /home/$USER/searxng/utils/searxng.sh remove all и заново install all на тестовом инстансе.
  3. В экстренных случаях отключить сайт: sudo nginx -s stop, затем откат конфигураций из резервной копии.

Тест-кейсы и критерии приёмки

  • Поисковый запрос возвращает результаты менее чем за 3 секунды при нормальной нагрузке.
  • При перезапуске uwsgi инстанс восстанавливается и обслуживает запросы под тем же FQDN.
  • Certbot автоматически продлевает сертификаты (проверяется вручную за 30 дней до окончания).

Короткий глоссарий (1 строка на термин)

  • FQDN — полное доменное имя, указывающее на ваш сервер (например, example.com).
  • VPS — виртуальный частный сервер, арендуемый в облаке.
  • uwsgi — интерфейс и сервер для запуска Python-приложений под Nginx.
  • certbot — утилита для автоматического получения сертификатов Let’s Encrypt.

Пример дерева решений для выбора хоста (Mermaid)

flowchart TD
    A[Есть ли статический IP?] -->|Да| B[Можно хостить на домашнем сервере]
    A -->|Нет| C[Использовать VPS]
    B --> D{Ресурсы Raspberry Pi?}
    D -->|Достаточно| E[Развернуть SearXNG локально]
    D -->|Недостаточно| C
    C --> F[Арендовать VPS 'Debian/Ubuntu']
    F --> G[Следовать этой инструкции]

Альтернативы и когда SearXNG не подходит

  • Если вам нужен поисковый сервис с полным контролем индексации и собственным краулингом — SearXNG не заменит полнофункциональный поисковый движок (например, ElasticSearch с кастомным краулером).
  • Для корпоративного использования с требованиями к SLA и масштабированию лучше рассмотреть решения с балансировкой нагрузки и HA.

Советы по миграции и обновлениям

  • Тестируйте обновления на стейджинг-инстансе перед продакшеном.
  • Используйте систему контроля версий для конфигураций (git для /etc/nginx и конфигов searxng).
  • Планируйте окна обслуживания и предупреждайте пользователей о перезапусках.

Приватность и соответствие требованиям (GDPR и проч.)

SearXNG по умолчанию больше ориентирован на приватность, но ответственность за соблюдение правил обработки данных остаётся за владельцем сервера. Если вы обрабатываете персональные данные граждан ЕС, убедитесь, что держите минимальные логи и реализуете запрашиваемые правки/удаления по требованиям GDPR.

Заключение и краткий план действий

SearXNG — практичное решение для приватного поиска: оно лёгкое, гибкое и совместимо с небольшими инстансами. Следуйте плану: подготовьте домен, установите зависимости, запустите инсталлятор, настройте Nginx и SSL, проведите тесты и настройте мониторинг.

Ключевые шаги: создать пользователя, установить пакеты, клонировать репозиторий, настроить Nginx, включить SSL, проверить работу.

Изображения и скриншоты: Isaac Quesada via Unsplash (изменено Ramces Red с логотипом SearXNG). Все скриншоты сделаны Ramces Red.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро