Language: fa
SearXNG: موتور جستوجوی شخصی بدون ردیابی روی VPS
یک موتور جستوجوی معمولی میتواند query را به آدرس IP، کوکیها و سابقه فعالیت متصل کند. SearXNG مسیر دیگری دارد: مرورگر به نمونه شما وصل میشود، نمونه از چند موتور جستوجوی خارجی query میفرستد و پاسخها را در یک صفحه ترکیب میکند.
منابع خارجی بهجای کوکیهای کاربر، آدرس سرور SearXNG را میبینند. خود سرویس نیز پروفایل تبلیغاتی نمیسازد. بااینحال، این به معنای ناشناسبودن کامل نیست: صاحب یک نمونه عمومی از نظر فنی میتواند logها را نگه دارد و بعد از باز کردن یک لینک، وبسایت مقصد دوباره با مرورگر ارتباط برقرار میکند.
در این مقاله قابلیتهای SearXNG را بررسی میکنیم و نمونه خود را روی VPS، همراه با HTTPS و محافظت با password، نصب میکنیم.
SearXNG چیست و چگونه کار میکند
SearXNG یک metasearch engine رایگان و open-source است. این سرویس index وبسایتها را خودش نگهداری نمیکند؛ نتایج را از موتورهای جستوجوی تنظیمشده و منابع تخصصی میگیرد، آنها را یکسانسازی میکند و در یک interface نمایش میدهد.
Browser → your SearXNG → search engines
↓
combined resultsSearXNG برای هر query:
- دسته جستوجو را تعیین میکند: web، images، news، videos یا دستهای دیگر؛
- از طرف سرور با منابع انتخابشده ارتباط برقرار میکند؛
- کوکیهای کاربر را برای آنها نمیفرستد و برای درخواستهای خروجی از browser profile تصادفی استفاده میکند؛
- پاسخها را در یک صفحه نتایج ترکیب میکند.
سرعت به سیستمهای خارجی وابسته است: ممکن است آنها کند پاسخ دهند، CAPTCHA نشان دهند یا آدرس IP را مسدود کنند. SearXNG یک لایه واسط مدیریتشده است، نه یک index مستقل.
چرا SearXNG از یک موتور جستوجو جالبتر است
منابع مختلف در یک صفحه نتایج
میتوانید موتورهای جستوجوی عمومی را با منابع تخصصی ترکیب کنید: دانشنامهها، نقشهها، انتشارات علمی، repositoryها، سرویسهای خبری یا catalogهای تصویر. این قابلیت زمانی مفید است که صفحه نتایج معمولی با صفحات SEO اشباع شده باشد یا در یافتن مطالب تخصصی مشکل داشته باشد.
در زمان آمادهسازی این مقاله، مستندات 272 integration را فهرست میکرد که 83 مورد آنها بهصورت پیشفرض فعال بودند. این به معنای پایداری یکسان همه آنها نیست.
این مجموعه به configuration بستگی دارد. چند منبع پایدار معمولاً سریعتر از فعالکردن همه منابع با هم کار میکنند.
فرمانهای سریع
میانبرها به شما اجازه میدهند موقتاً یک engine، category یا language را انتخاب کنید:
!wp docker compose — search Wikipedia
!images northern lights — search for images
:en !wp proxy server — search Wikipedia in Englishفرمان !! کاربر را مستقیماً به یک موتور جستوجوی خارجی میفرستد. در این حالت محافظت SearXNG دیگر اعمال نمیشود.
جستوجو برای مرورگر و ابزارهای خودتان
SearXNG از OpenSearch پشتیبانی میکند، بنابراین میتوان آن را بهعنوان موتور جستوجوی پیشفرض مرورگر قرار داد. اگر administrator قالبهای لازم را فعال کرده باشد، HTTP API با پاسخهای JSON، CSV یا RSS نیز در دسترس است.
یک نمونه میتواند backend جستوجو برای dashboard داخلی، bot، research script یا local AI assistant باشد. API را فقط پس از فعالکردن authentication و rate limit در معرض دسترسی قرار دهید.
SearXNG چقدر خصوصی است
| کاری که انجام میدهد | کاری که انجام نمیدهد |
|---|---|
| کوکیهای مرورگر را برای موتورهای جستوجوی خارجی نمیفرستد | ناشناسبودن کامل فراهم نمیکند |
| IP کاربر را پشت IP سرور پنهان میکند | بعد از باز کردن وبسایت نتیجه، از کاربر محافظت نمیکند |
| تبلیغات شخص ثالث و برخی tracking parameterها را حذف میکند | تضمین نمیکند صاحب سرور دیگر log نگه ندارد |
| میتواند تصویرها را proxy کند | جای VPN، Tor یا محافظت مرورگر را نمیگیرد |
یک نمونه عمومی برای امتحان سرویس راحت است، اما باید به administrator آن اعتماد کنید و IP مشترک با احتمال بیشتری rate-limit میشود.
سرور شخصی کنترل logها، منابع و دسترسی را در اختیار شما میگذارد، اما مرورگر را ناشناس نمیکند.
نمونه عمومی، سرور خانگی یا VPS
| گزینه | مزایا | محدودیتها |
|---|---|---|
| نمونه عمومی | نیازی به نصب نیست | اعتماد به مالک، overload و CAPTCHA |
| سرور خانگی | کنترل کامل بدون اجاره VPS | دستگاه باید همیشه روشن باشد؛ تنظیم دسترسی خارجی دشوارتر است |
| VPS شخصی | کارکرد 24/7، دامنه، HTTPS و دسترسی از دستگاههای مختلف | باید containerها را بهروزرسانی و امنیت را پایش کنید |
نمونه شخصی SearXNG برای خانواده، تیم، توسعهدهنده یا ابزارهای local AI مفید است. برای جستوجوهای گاهبهگاه، نمونه عمومی سادهتر خواهد بود.
SearXNG به چه نوع VPS نیاز دارد
بار سیستم به تعداد کاربران، منابع و queryهای همزمان بستگی دارد. configurationهای عملی برای شروع:
| سناریو | CPU | RAM | Storage |
|---|---|---|---|
| یک کاربر | 1 vCPU | 1 GB | 10 GB |
| خانواده یا تیم کوچک | 2 vCPU | 2 GB | 20 GB |
| API و سرویسهای اضافی | 2–4 vCPU | از 4 GB | از 30 GB |
به دیسک بزرگی نیاز ندارید. کیفیت شبکه، IP پایدار و RAM آزاد اهمیت بیشتری دارند.
یک Linux VPS از tropic.host برای این سناریو مناسب است: میتوانید با configuration کوچک شروع کنید و با اضافهشدن کاربران یا API منابع را افزایش دهید. هنگام انتخاب plan، سرمایهگذاری روی RAM و کیفیت شبکه از پرداخت هزینه اضافی برای ظرفیت storage مفیدتر است.
نصب SearXNG روی VPS با Docker Compose
در این مثال از Ubuntu 24.04 LTS، زیردامنه search.example.com، Valkey و Caddy استفاده میکنیم. رکورد DNS نوع A را به سرور متصل کنید و پورتهای 80 و 443 را باز کنید.
1. Docker را نصب و یک directory ایجاد کنید
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 با دامنه و secret تصادفی بسازید:
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",
]limiter خطر overload کردن نمونه توسط botها و محدودکردن زودتر IP توسط موتورهای جستوجوی خارجی را کاهش میدهد.
4. password و HTTPS را اضافه کنید
برای یک password قوی hash تولید کنید:
sudo docker run --rm caddy:2-alpine \
caddy hash-password --plaintext 'REPLACE_WITH_PASSWORD'hash بهدستآمده را در Caddyfile قرار دهید:
{$SEARXNG_HOSTNAME} {
basic_auth {
searchuser INSERT_HASH_HERE
}
reverse_proxy searxng:8080 {
header_up X-Real-IP {remote_host}
}
}Caddy بهجای password متن ساده، hash را ذخیره میکند. بهجای Basic Auth میتوانید دسترسی سرویس را به VPN نیز محدود کنید.
5. containerها را اجرا کنید
sudo docker compose config
sudo docker compose pull
sudo docker compose up -d
sudo docker compose pshttps://search.example.com را باز کنید. Caddy بهصورت خودکار TLS certificate میگیرد و پس از آن مرورگر نام کاربری و password searchuser را میخواهد. logهای SearXNG با این command در دسترس هستند:
sudo docker compose logs -f searxngبعد از راهاندازی چه چیزهایی را تنظیم کنیم
فقط منابع مفید را نگه دارید، language و SafeSearch را انتخاب کنید و سپس SearXNG را از طریق OpenSearch به مرورگر اضافه کنید. برای بهروزرسانی آن اجرا کنید:
sudo docker compose pull
sudo docker compose up -dاز .env، Caddyfile و directory مربوط به searxng backup بگیرید. JSON API را فقط در صورت نیاز فعال کنید و آن را بدون password و rate limiting رها نکنید.
اشتباهات رایج
| اشتباه | پیامد | راهحل |
|---|---|---|
| عمومیکردن نمونه | botها بار ایجاد میکنند و IP بیشتر محدود میشود | از password، VPN یا single sign-on استفاده کنید |
| فعالکردن منابع بیش از حد | نتایج کند و timeout | چند engine پایدار را نگه دارید |
| تصور اینکه SearXNG index خودش را دارد | هنگام خرابی سیستمهای خارجی برخی نتایج ناپدید میشوند | وابستگی آن به منابع را در نظر بگیرید |
| انتظار ناشناسبودن کامل | وبسایت مقصد همچنان میتواند مرورگر را ردیابی کند | از محافظت مرورگر، VPN یا Tor استفاده کنید |
| اجرا بدون HTTPS | queryها و password ناامن منتقل میشوند | از reverse proxy با TLS استفاده کنید |
نتیجهگیری
SearXNG منابع مختلف را در یک interface ترکیب میکند، شخصیسازی را کاهش میدهد و یک سرویس جستوجوی واحد برای مرورگر، scriptها یا local AI فراهم میسازد. برای امتحانکردن، نمونه عمومی کافی است. برای استفاده منظم، سرور شخصی با HTTPS، authentication، limiter و چند منبع پایدار انتخاب بهتری است.
میتوانید با 1 GB RAM شروع کنید. با افزایش تعداد کاربران، فعالکردن API یا اجرای containerهای اضافی منابع را بیشتر کنید.
FAQ
آیا SearXNG کاملاً ناشناس است؟
خیر. بخشی از دادهها را از موتورهای جستوجوی خارجی پنهان میکند، اما administrator نمونه میتواند log نگه دارد. پس از باز کردن یک وبسایت، مکانیزمهای ردیابی همان سایت اعمال میشوند.
آیا SearXNG از Google بهتر است؟
این دو مسئله متفاوتی را حل میکنند. Google معمولاً سریعتر است و نتایج را بیشتر شخصیسازی میکند. SearXNG کنترل بیشتری میدهد، امکان ترکیب منابع را فراهم میکند و کمتر به پروفایل کاربر وابسته است.
آیا میتوان SearXNG را بدون VPS استفاده کرد؟
بله. میتوانید از نمونه عمومی، کامپیوتر خانگی، NAS یا mini server استفاده کنید. برای دسترسی 24/7 از هر شبکهای به VPS نیاز دارید.
چه مقدار RAM لازم است؟
برای یک کاربر، شروع با 1 GB منطقی است. برای خانواده، تیم، API یا containerهای اضافی، 2–4 GB بهتر است.
آیا SearXNG به مرورگر یا AI متصل میشود؟
بله. مرورگر میتواند از OpenSearch استفاده کند و برنامهها از HTTP API بهره ببرند. دسترسی API باید با authentication و limiter محافظت شود.
