Language: ru
SearXNG: собственная поисковая система без слежки на VPS
Обычная поисковая система может связать запрос с IP-адресом, файлами cookie и историей действий. SearXNG меняет маршрут: браузер подключается к вашему экземпляру, тот отправляет запросы нескольким внешним поисковым системам и объединяет их ответы на одной странице.
Внешние источники видят адрес сервера SearXNG, а не файлы cookie пользователя. Сам сервис не создаёт рекламный профиль. Однако полной анонимности это не даёт: владелец публичного экземпляра технически может вести журналы, а после перехода по ссылке сайт назначения снова взаимодействует с браузером.
Разберём возможности SearXNG и установим собственный экземпляр на VPS с HTTPS и защитой по паролю.
Что такое SearXNG и как он работает
SearXNG — бесплатная метапоисковая система с открытым исходным кодом. Она не поддерживает собственный индекс сайтов: сервис получает результаты от настроенных поисковых систем и специализированных источников, нормализует их и показывает в едином интерфейсе.
Browser → your SearXNG → search engines
↓
combined resultsДля каждого запроса SearXNG:
- определяет категорию поиска: веб, изображения, новости, видео или другую категорию;
- обращается к выбранным источникам от имени сервера;
- не передаёт им файлы cookie пользователя и использует случайный профиль браузера для исходящих запросов;
- объединяет ответы на одной странице результатов.
Скорость зависит от внешних систем: они могут отвечать медленно, показывать CAPTCHA или заблокировать IP-адрес. SearXNG — это управляемый промежуточный слой, а не автономный индекс.
Чем SearXNG интереснее одной поисковой системы
Разные источники на одной странице результатов
Можно объединять поисковые системы общего назначения со специализированными источниками: энциклопедиями, картами, научными публикациями, репозиториями, новостными сервисами или каталогами изображений. Это помогает, когда обычная страница результатов перегружена SEO-сайтами или плохо находит материалы по узкой теме.
На момент подготовки статьи документация перечисляла 272 интеграции, 83 из которых были включены по умолчанию. Это не означает, что все они работают одинаково стабильно.
Набор зависит от конфигурации. Несколько стабильных источников обычно работают быстрее, чем всё включённое сразу.
Быстрые команды
Сокращения позволяют временно выбрать поисковую систему, категорию или язык:
!wp docker compose — search Wikipedia
!images northern lights — search for images
:en !wp proxy server — search Wikipedia in EnglishКоманда !! перенаправляет пользователя непосредственно во внешнюю поисковую систему. Защита SearXNG в этом режиме больше не действует.
Поиск для браузера и собственных инструментов
SearXNG поддерживает OpenSearch, поэтому его можно назначить поисковой системой браузера по умолчанию. Также доступен HTTP API с ответами в JSON, CSV или RSS, если администратор включил необходимые форматы.
Один экземпляр может работать поисковым бэкендом для внутренней панели, бота, исследовательского скрипта или локального ИИ-помощника. API следует открывать только после настройки аутентификации и ограничений частоты запросов.
Насколько приватен SearXNG
| Что он делает | Чего он не делает |
|---|---|
| Не отправляет файлы cookie браузера внешним поисковым системам | Не обеспечивает полной анонимности |
| Скрывает IP-адрес пользователя за IP-адресом сервера | Не защищает пользователя после открытия сайта из результатов |
| Убирает стороннюю рекламу и часть параметров отслеживания | Не гарантирует, что владелец чужого сервера не ведёт журналы |
| Может проксировать изображения | Не заменяет VPN, Tor или защиту браузера |
Публичный экземпляр удобен для знакомства с сервисом, но его администратору приходится доверять, а общий IP-адрес с большей вероятностью попадёт под ограничение частоты запросов.
Собственный сервер даёт контроль над журналами, источниками и доступом, но не делает браузер анонимным.
Публичный экземпляр, домашний сервер или VPS
| Вариант | Преимущества | Ограничения |
|---|---|---|
| Публичный экземпляр | Ничего не нужно устанавливать | Доверие владельцу, перегрузка, CAPTCHA |
| Домашний сервер | Полный контроль без аренды VPS | Устройство должно работать постоянно; внешний доступ сложнее настроить |
| Собственный VPS | Работа 24/7, домен, HTTPS, доступ с разных устройств | Контейнеры нужно обновлять, а безопасность — контролировать |
Собственный экземпляр SearXNG полезен для семьи, команды, разработчика или локальных ИИ-инструментов. Для редких поисковых запросов проще использовать публичный экземпляр.
Какой VPS нужен SearXNG
Нагрузка зависит от количества пользователей, источников и одновременных запросов. Практические стартовые конфигурации:
| Сценарий | CPU | RAM | Диск |
|---|---|---|---|
| Один пользователь | 1 vCPU | 1 GB | 10 GB |
| Семья или небольшая команда | 2 vCPU | 2 GB | 20 GB |
| API и дополнительные сервисы | 2–4 vCPU | от 4 GB | от 30 GB |
Большой диск не нужен. Качество сети, стабильный IP-адрес и запас оперативной памяти важнее.
Linux VPS от tropic.host подходит для такого сценария: можно начать с небольшой конфигурации и увеличить ресурсы по мере добавления пользователей или доступа к API. При выборе тарифа полезнее вложиться в RAM и качество сети, чем переплачивать за объём диска.
Установка SearXNG на VPS с Docker Compose
В примере используются Ubuntu 24.04 LTS, search.example.com, Valkey и Caddy. Направьте DNS-запись A на сервер и откройте порты 80 и 443.
1. Установите Docker и создайте каталог
sudo apt update
sudo apt install -y docker.io docker-compose-v2 openssl
sudo systemctl enable --now docker
sudo mkdir -p /opt/searxng/searxng
cd /opt/searxngСоздайте файл .env с доменом и случайным секретом:
printf 'SEARXNG_HOSTNAME=search.example.com\nSEARXNG_SECRET=%s\n' \
"$(openssl rand -hex 32)" | sudo tee .env >/dev/null
sudo chmod 600 .env2. Создайте docker-compose.yml
name: searxng
services:
searxng:
image: docker.io/searxng/searxng:latest
restart: unless-stopped
environment:
SEARXNG_BASE_URL: https://${SEARXNG_HOSTNAME}/
SEARXNG_SECRET: ${SEARXNG_SECRET}
SEARXNG_VALKEY_URL: valkey://valkey:6379/0
volumes:
- ./searxng:/etc/searxng:rw
- searxng-cache:/var/cache/searxng
depends_on: [valkey]
valkey:
image: docker.io/valkey/valkey:9-alpine
restart: unless-stopped
command: valkey-server --save 30 1 --loglevel warning
volumes:
- valkey-data:/data
caddy:
image: docker.io/caddy:2-alpine
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "443:443/udp"
environment:
SEARXNG_HOSTNAME: ${SEARXNG_HOSTNAME}
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy-data:/data
- caddy-config:/config
depends_on: [searxng]
volumes:
searxng-cache:
valkey-data:
caddy-data:
caddy-config:3. Настройте SearXNG
Создайте searxng/settings.yml:
use_default_settings: true
general:
instance_name: "Private Search"
search:
safe_search: 1
autocomplete: ""
formats: [html]
server:
limiter: true
image_proxy: true
valkey:
url: valkey://valkey:6379/0Создайте searxng/limiter.toml:
[botdetection]
trusted_proxies = [
"127.0.0.0/8",
"::1",
"172.16.0.0/12",
]Ограничитель снижает риск того, что боты перегрузят экземпляр и из-за этого внешние поисковые системы раньше начнут ограничивать его IP-адрес.
4. Добавьте пароль и HTTPS
Сгенерируйте хеш для надёжного пароля:
sudo docker run --rm caddy:2-alpine \
caddy hash-password --plaintext 'REPLACE_WITH_PASSWORD'Вставьте полученный хеш в Caddyfile:
{$SEARXNG_HOSTNAME} {
basic_auth {
searchuser INSERT_HASH_HERE
}
reverse_proxy searxng:8080 {
header_up X-Real-IP {remote_host}
}
}Caddy хранит хеш, а не пароль в открытом виде. Вместо Basic Auth сервис также можно ограничить VPN.
5. Запустите контейнеры
sudo docker compose config
sudo docker compose pull
sudo docker compose up -d
sudo docker compose psОткройте https://search.example.com. Caddy автоматически получит TLS-сертификат, после чего браузер запросит имя пользователя searchuser и пароль. Журналы SearXNG доступны следующей командой:
sudo docker compose logs -f searxngЧто настроить после запуска
Оставьте только полезные источники, выберите язык и режим SafeSearch, затем добавьте SearXNG в браузер через OpenSearch. Для обновления выполните:
sudo docker compose pull
sudo docker compose up -dСоздавайте резервные копии .env, Caddyfile и каталога searxng. Включайте JSON API только при необходимости и не оставляйте его без пароля и ограничения частоты запросов.
Распространённые ошибки
| Ошибка | Последствие | Решение |
|---|---|---|
| Сделать экземпляр публичным | Боты создают нагрузку, IP чаще попадает под ограничения | Использовать пароль, VPN или единую систему входа |
| Включить слишком много источников | Медленные результаты и тайм-ауты | Оставить несколько стабильных поисковых систем |
| Считать SearXNG собственным индексом | Некоторые результаты исчезают при сбоях внешних систем | Учитывать зависимость от источников |
| Ожидать полной анонимности | Сайт назначения всё ещё может отслеживать браузер | Использовать защиту браузера, VPN или Tor |
| Запустить без HTTPS | Запросы и пароль передаются небезопасно | Использовать обратный прокси с TLS |
Заключение
SearXNG объединяет разные источники в одном интерфейсе, уменьшает персонализацию и предоставляет единую поисковую службу для браузера, скриптов или локального ИИ. Для знакомства достаточно публичного экземпляра. Для регулярного использования лучше выбрать собственный сервер с HTTPS, аутентификацией, ограничителем и небольшим набором стабильных источников.
Начать можно с 1 GB RAM. Увеличивайте ресурсы по мере роста числа пользователей, при включении API или запуске дополнительных контейнеров.
FAQ
Обеспечивает ли SearXNG полную анонимность?
Нет. Он скрывает часть данных от внешних поисковых систем, но администратор экземпляра может вести журналы. После открытия сайта начинают действовать его собственные механизмы отслеживания.
SearXNG лучше Google?
Он решает другую задачу. Google обычно работает быстрее и сильнее персонализирует результаты. SearXNG даёт больше контроля, позволяет объединять источники и меньше зависит от профиля пользователя.
Можно ли использовать SearXNG без VPS?
Да. Подойдёт публичный экземпляр, домашний компьютер, NAS или мини-сервер. VPS нужен для круглосуточного доступа из любой сети.
Сколько оперативной памяти требуется?
Для одного пользователя разумно начать с 1 GB. Для семьи, команды, API или дополнительных контейнеров предпочтительнее 2–4 GB.
Можно ли подключить SearXNG к браузеру или ИИ?
Да. Браузер может использовать OpenSearch, а приложения — HTTP API. Доступ к API следует защищать аутентификацией и ограничителем запросов.
