Language: vi
SearXNG: công cụ tìm kiếm riêng không theo dõi trên VPS
Công cụ tìm kiếm thông thường có thể liên kết truy vấn với địa chỉ IP, cookie và lịch sử hoạt động. SearXNG thay đổi đường đi: trình duyệt kết nối tới phiên bản của bạn, phiên bản này truy vấn nhiều công cụ tìm kiếm bên ngoài rồi kết hợp phản hồi trên một trang.
Các nguồn bên ngoài nhìn thấy địa chỉ máy chủ SearXNG thay vì cookie của người dùng. Bản thân dịch vụ không xây dựng hồ sơ quảng cáo. Tuy nhiên, đây không phải sự ẩn danh hoàn toàn: chủ sở hữu phiên bản công khai về mặt kỹ thuật có thể lưu nhật ký, còn sau khi bạn mở liên kết, website đích lại tương tác với trình duyệt.
Chúng ta sẽ tìm hiểu khả năng của SearXNG và cài phiên bản riêng trên VPS với HTTPS cùng bảo vệ bằng mật khẩu.
SearXNG là gì và hoạt động như thế nào?
SearXNG là công cụ tìm kiếm siêu dữ liệu miễn phí, mã nguồn mở. Nó không duy trì chỉ mục website riêng: dịch vụ lấy kết quả từ các công cụ tìm kiếm và nguồn chuyên biệt đã cấu hình, chuẩn hóa rồi hiển thị trong một giao diện.
Browser → your SearXNG → search engines
↓
combined resultsVới mỗi truy vấn, SearXNG sẽ:
- xác định danh mục tìm kiếm: web, hình ảnh, tin tức, video hoặc danh mục khác;
- liên hệ các nguồn đã chọn thay mặt máy chủ;
- không gửi cookie của người dùng cho chúng và sử dụng hồ sơ trình duyệt ngẫu nhiên cho các yêu cầu đi;
- kết hợp phản hồi thành một trang kết quả.
Tốc độ phụ thuộc vào hệ thống bên ngoài: chúng có thể phản hồi chậm, hiển thị CAPTCHA hoặc chặn địa chỉ IP. SearXNG là lớp trung gian được quản lý, không phải chỉ mục tự hoạt động.
Vì sao SearXNG thú vị hơn một công cụ tìm kiếm đơn lẻ?
Nhiều nguồn trên một trang kết quả
Bạn có thể kết hợp các công cụ tìm kiếm phổ thông với nguồn chuyên biệt: bách khoa toàn thư, bản đồ, ấn phẩm khoa học, kho mã, dịch vụ tin tức hoặc danh mục hình ảnh. Điều này hữu ích khi trang kết quả thông thường bị quá tải bởi các trang SEO hoặc khó tìm tài liệu ngách.
Tại thời điểm chuẩn bị bài viết, tài liệu liệt kê 272 tích hợp, trong đó 83 được bật theo mặc định. Điều đó không có nghĩa tất cả đều ổn định như nhau.
Tập nguồn phụ thuộc vào cấu hình. Một vài nguồn ổn định thường hoạt động nhanh hơn việc bật tất cả cùng lúc.
Lệnh nhanh
Phím tắt cho phép tạm thời chọn công cụ, danh mục hoặc ngôn ngữ:
!wp docker compose — search Wikipedia
!images northern lights — search for images
:en !wp proxy server — search Wikipedia in EnglishLệnh !! chuyển người dùng trực tiếp tới công cụ tìm kiếm bên ngoài. Chế độ này không còn được SearXNG bảo vệ.
Tìm kiếm cho trình duyệt và công cụ riêng
SearXNG hỗ trợ OpenSearch, vì vậy có thể đặt làm công cụ tìm kiếm mặc định của trình duyệt. Nếu quản trị viên đã bật các định dạng cần thiết, HTTP API cũng có thể trả về JSON, CSV hoặc RSS.
Một phiên bản có thể làm backend tìm kiếm cho bảng điều khiển nội bộ, bot, script nghiên cứu hoặc trợ lý AI cục bộ. Chỉ nên mở API sau khi đã cấu hình xác thực và giới hạn tốc độ.
SearXNG riêng tư đến đâu?
| Có làm | Không làm |
|---|---|
| Không gửi cookie trình duyệt cho công cụ tìm kiếm bên ngoài | Không cung cấp sự ẩn danh hoàn toàn |
| Che địa chỉ IP của người dùng sau IP máy chủ | Không bảo vệ người dùng sau khi họ mở website kết quả |
| Loại bỏ quảng cáo bên thứ ba và một số tham số theo dõi | Không đảm bảo chủ máy chủ của người khác không lưu nhật ký |
| Có thể proxy hình ảnh | Không thay thế VPN, Tor hoặc cơ chế bảo vệ của trình duyệt |
Phiên bản công khai thuận tiện để thử dịch vụ, nhưng bạn phải tin tưởng quản trị viên, còn IP dùng chung có khả năng bị giới hạn tốc độ cao hơn.
Máy chủ riêng cho bạn quyền kiểm soát nhật ký, nguồn và quyền truy cập, nhưng không làm trình duyệt trở nên ẩn danh.
Phiên bản công khai, máy chủ gia đình hay VPS?
| Lựa chọn | Ưu điểm | Hạn chế |
|---|---|---|
| Phiên bản công khai | Không cần cài đặt gì | Phải tin chủ sở hữu, quá tải, CAPTCHA |
| Máy chủ gia đình | Kiểm soát hoàn toàn mà không thuê VPS | Thiết bị phải chạy liên tục; khó cấu hình truy cập bên ngoài |
| VPS riêng | Hoạt động 24/7, tên miền, HTTPS, truy cập từ nhiều thiết bị | Phải cập nhật container và theo dõi bảo mật |
Phiên bản SearXNG riêng hữu ích cho gia đình, nhóm, nhà phát triển hoặc các công cụ AI cục bộ. Với tìm kiếm không thường xuyên, phiên bản công khai đơn giản hơn.
SearXNG cần loại VPS nào?
Tải phụ thuộc vào số người dùng, nguồn và truy vấn đồng thời. Cấu hình khởi điểm thực tế:
| Tình huống | CPU | RAM | Bộ nhớ |
|---|---|---|---|
| Một người dùng | 1 vCPU | 1 GB | 10 GB |
| Gia đình hoặc nhóm nhỏ | 2 vCPU | 2 GB | 20 GB |
| API và dịch vụ bổ sung | 2–4 vCPU | từ 4 GB | từ 30 GB |
Không cần đĩa lớn. Chất lượng mạng, IP ổn định và RAM dự phòng quan trọng hơn.
VPS Linux từ tropic.host phù hợp với trường hợp này: bạn có thể bắt đầu bằng cấu hình nhỏ và tăng tài nguyên khi thêm người dùng hoặc API. Khi chọn gói, đầu tư vào RAM và chất lượng mạng hữu ích hơn việc trả thêm cho dung lượng lưu trữ lớn.
Cài SearXNG trên VPS bằng Docker Compose
Ví dụ này dùng Ubuntu 24.04 LTS, search.example.com, Valkey và Caddy. Trỏ bản ghi DNS A đến máy chủ và mở các cổng 80, 443.
1. Cài Docker và tạo thư mục
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/searxngTạo tệp .env chứa tên miền và một secret ngẫu nhiên:
printf 'SEARXNG_HOSTNAME=search.example.com\nSEARXNG_SECRET=%s\n' \
"$(openssl rand -hex 32)" | sudo tee .env >/dev/null
sudo chmod 600 .env2. Tạo 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. Cấu hình SearXNG
Tạo 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/0Tạo searxng/limiter.toml:
[botdetection]
trusted_proxies = [
"127.0.0.0/8",
"::1",
"172.16.0.0/12",
]Limiter giảm nguy cơ bot làm quá tải phiên bản và khiến công cụ tìm kiếm bên ngoài giới hạn IP của phiên bản sớm hơn.
4. Thêm mật khẩu và HTTPS
Tạo hash cho một mật khẩu mạnh:
sudo docker run --rm caddy:2-alpine \
caddy hash-password --plaintext 'REPLACE_WITH_PASSWORD'Chèn hash kết quả vào Caddyfile:
{$SEARXNG_HOSTNAME} {
basic_auth {
searchuser INSERT_HASH_HERE
}
reverse_proxy searxng:8080 {
header_up X-Real-IP {remote_host}
}
}Caddy lưu hash thay vì mật khẩu dạng văn bản. Thay cho Basic Auth, dịch vụ cũng có thể được giới hạn trong VPN.
5. Khởi động các container
sudo docker compose config
sudo docker compose pull
sudo docker compose up -d
sudo docker compose psMở https://search.example.com. Caddy sẽ tự động lấy chứng chỉ TLS, sau đó trình duyệt yêu cầu tên người dùng searchuser và mật khẩu. Nhật ký SearXNG có thể xem bằng lệnh:
sudo docker compose logs -f searxngCần cấu hình gì sau khi khởi động?
Chỉ giữ các nguồn hữu ích, chọn ngôn ngữ và thiết lập SafeSearch, sau đó thêm SearXNG vào trình duyệt qua OpenSearch. Để cập nhật, chạy:
sudo docker compose pull
sudo docker compose up -dSao lưu .env, Caddyfile và thư mục searxng. Chỉ bật JSON API khi cần thiết, không để API thiếu mật khẩu và giới hạn tốc độ.
Những lỗi thường gặp
| Lỗi | Hậu quả | Giải pháp |
|---|---|---|
| Để phiên bản công khai | Bot tạo tải và IP bị giới hạn thường xuyên hơn | Dùng mật khẩu, VPN hoặc đăng nhập một lần |
| Bật quá nhiều nguồn | Kết quả chậm và hết thời gian chờ | Giữ một vài công cụ ổn định |
| Coi SearXNG là chỉ mục riêng | Một số kết quả biến mất khi hệ thống bên ngoài lỗi | Tính đến sự phụ thuộc vào nguồn |
| Mong đợi ẩn danh hoàn toàn | Website đích vẫn có thể theo dõi trình duyệt | Dùng cơ chế bảo vệ trình duyệt, VPN hoặc Tor |
| Chạy mà không có HTTPS | Truy vấn và mật khẩu truyền không an toàn | Dùng reverse proxy với TLS |
Kết luận
SearXNG kết hợp nhiều nguồn trong một giao diện, giảm cá nhân hóa và cung cấp một dịch vụ tìm kiếm duy nhất cho trình duyệt, script hoặc AI cục bộ. Phiên bản công khai đủ để thử. Với việc sử dụng thường xuyên, máy chủ riêng có HTTPS, xác thực, limiter và một nhóm nhỏ nguồn ổn định là lựa chọn tốt hơn.
Bạn có thể bắt đầu với 1 GB RAM. Tăng tài nguyên khi số người dùng tăng, khi bật API hoặc khi chạy thêm container.
FAQ
SearXNG có hoàn toàn ẩn danh không?
Không. Nó ẩn một phần dữ liệu khỏi công cụ tìm kiếm bên ngoài, nhưng quản trị viên phiên bản có thể lưu nhật ký. Sau khi bạn mở website, cơ chế theo dõi riêng của website đó sẽ được áp dụng.
SearXNG có tốt hơn Google không?
Nó giải quyết một vấn đề khác. Google thường nhanh hơn và cá nhân hóa kết quả mạnh hơn. SearXNG cho bạn nhiều quyền kiểm soát hơn, cho phép kết hợp nguồn và ít phụ thuộc vào hồ sơ người dùng hơn.
Có thể dùng SearXNG mà không cần VPS không?
Có. Bạn có thể dùng phiên bản công khai, máy tính gia đình, NAS hoặc máy chủ mini. VPS cần thiết nếu muốn truy cập 24/7 từ mọi mạng.
Cần bao nhiêu RAM?
Với một người dùng, bắt đầu bằng 1 GB là hợp lý. Với gia đình, nhóm, API hoặc container bổ sung, nên dùng 2–4 GB.
Có thể kết nối SearXNG với trình duyệt hoặc AI không?
Có. Trình duyệt có thể dùng OpenSearch, còn ứng dụng có thể dùng HTTP API. Quyền truy cập API nên được bảo vệ bằng xác thực và limiter.
