Cài đặt Ollama trên VPS Linux: Tự chạy Local AI (DeepSeek, Llama 3) riêng tư & an toàn

Tác giả: Trần Thảo 04 tháng 02, 2026

Trong kỷ nguyên số, dữ liệu chính là tài sản quý giá nhất. Khi bạn gửi một câu hỏi cho ChatGPT hay Claude, bạn đang trao dữ liệu đó cho bên thứ ba. Đối với các lập trình viên, doanh nghiệp hoặc những người dùng coi trọng sự riêng tư, rủi ro này là không thể chấp nhận được.

Sự trỗi dậy của các mô hình ngôn ngữ lớn (LLM) mã nguồn mở như DeepSeek-R1 hay Meta Llama 3 đã mở ra một kỷ nguyên mới: Local AI. Bằng cách cài đặt Ollama trên VPS Linux, bạn hoàn toàn có thể sở hữu một “ChatGPT riêng” chạy ngay trên Cloud VPS của mình, hoạt động 24/7, không giới hạn số lượng câu hỏi và quan trọng nhất: Dữ liệu không bao giờ rời khỏi máy chủ của bạn.

Bài viết này là hướng dẫn kỹ thuật chuyên sâu (Technical Guide) giúp bạn cài đặt, tối ưu hóa và bảo mật hệ thống Ollama trên VPS Linux, ngay cả khi bạn không sở hữu những phần cứng đắt tiền.

Minh họa trí tuệ nhân tạo

Tại sao VPS là lựa chọn tối ưu cho Local AI?

Nhiều người dùng thường chạy Ollama ngay trên laptop cá nhân. Tuy nhiên, việc chuyển dịch sang VPS (Virtual Private Server) mang lại những lợi thế kỹ thuật vượt trội:

  • Tính sẵn sàng cao (High Availability): VPS hoạt động 24/7/365. Bạn có thể kết nối API từ ứng dụng di động, website hoặc quy trình làm việc (workflow) bất cứ lúc nào mà không cần bật máy tính cá nhân.
  • Địa chỉ IP tĩnh (Static IP): Khác với mạng gia đình thường xuyên thay đổi IP, VPS cung cấp IP tĩnh giúp việc cấu hình bảo mật, tên miền và chứng chỉ SSL trở nên ổn định và chuyên nghiệp.
  • Cô lập tài nguyên: Chạy các mô hình AI là tác vụ tiêu tốn nhiều RAM và CPU. Việc đẩy tải công việc này lên VPS giúp giải phóng tài nguyên cho máy tính làm việc của bạn, tránh tình trạng treo máy hoặc chậm trễ cục bộ.
  • Quyền kiểm soát dữ liệu (Data Sovereignty): Khi thiết lập đúng cách (như hướng dẫn trong bài viết này), toàn bộ lịch sử chat và dữ liệu đầu vào được lưu trữ cục bộ trên ổ cứng VPS. Bạn có toàn quyền xóa, sao lưu hoặc mã hóa chúng.

Phân tích yêu cầu phần cứng: Sự thật về RAM và CPU

Yêu cầu phần mềm

Một trong những rào cản lớn nhất khiến người dùng ngần ngại triển khai Local AI là nỗi lo về cấu hình phần cứng cao cấp. Tuy nhiên, nhờ kỹ thuật nén mô hình (Quantization), yêu cầu thực tế đã giảm đi đáng kể.

CPU hay GPU?

Ollama hoạt động tối ưu nhất trên GPU (NVIDIA). Tuy nhiên, chi phí để Setup VPS GPU AI thường khá cao. Tin vui là bạn hoàn toàn có thể chạy Ollama trên CPU (CPU-Only Inference) với tốc độ chấp nhận được cho các tác vụ như Chatbot, tóm tắt văn bản hoặc hỗ trợ Code.

Yêu cầu bắt buộc: CPU của VPS phải hỗ trợ tập lệnh AVX2. Đây là tập lệnh giúp xử lý tính toán vector, yếu tố cốt lõi để chạy Neural Network. Hầu hết các dòng CPU máy chủ hiện đại như Intel Xeon Gold, Platinum hay AMD EPYC đều hỗ trợ tốt chuẩn này.

Dung lượng RAM: Bao nhiêu là đủ?

Nhiều tài liệu cũ thường trích dẫn yêu cầu RAM dựa trên định dạng FP16 (Full Precision), dẫn đến những con số khổng lồ gây hiểu lầm. Thực tế, Ollama mặc định sử dụng định dạng GGUF 4-bit Quantization. Đây là định dạng nén giúp giảm dung lượng model xuống 4 lần mà vẫn giữ được 90-95% độ chính xác của mô hình.

Dưới đây là bảng yêu cầu RAM thực tế cho các mô hình phổ biến hiện nay:

Mô hình (Model) Kích thước tham số Dung lượng file (4-bit) RAM khuyến nghị (an toàn)
Llama 3.2 3 Billion ~2.0 GB 4 GB
DeepSeek-R1 (Distill Qwen) 7 Billion ~4.7 GB 8 GB
Llama 3 / 3.1 8 Billion ~4.7 GB 8 GB
DeepSeek-R1 (Distill Llama) 8 Billion ~5.2 GB 8 GB – 12 GB
Mistral v0.3 7 Billion ~4.1 GB 8 GB

Kết luận kỹ thuật: Nếu bạn đang tìm kiếm nơi mua VPS giá rẻ nhất để bắt đầu, một cấu hình 8GB RAM và 4 vCPU là điểm cân bằng tối ưu để vận hành mượt mà các mô hình thông minh nhất hiện nay như DeepSeek-R1 7B hoặc Llama 3 8B.

Quy trình cài đặt Ollama trên VPS Linux

Chúng ta sẽ thực hiện cài đặt trên môi trường Ubuntu 22.04 LTS hoặc Debian 12. Đây là các hệ điều hành ổn định và được hỗ trợ tốt nhất cho các thư viện AI.

Bước 1: Cập nhật hệ thống và cài đặt công cụ hỗ trợ

Trước tiên, hãy đảm bảo hệ thống của bạn nhận được các bản vá bảo mật mới nhất. Hãy chạy lần lượt các lệnh sau:

sudo apt update && sudo apt upgrade -y
sudo apt install curl -y

Bước 2: Cài đặt Ollama qua script chính thức

Cách an toàn và chuẩn nhất để cài đặt Ollama là sử dụng script cài đặt tự động từ nhà phát triển. Script này sẽ thực hiện ba việc quan trọng:

  1. Tải xuống tệp nhị phân (binary) tương thích với kiến trúc CPU của bạn.
  2. Tạo người dùng hệ thống (system user) tên là ollama để chạy dịch vụ an toàn.
  3. Thiết lập Ollama khởi động cùng hệ thống thông qua Systemd.

Bạn chạy lệnh sau:

curl -fsSL https://ollama.com/install.sh | sh

Sau khi quá trình cài đặt hoàn tất, hãy kiểm tra phiên bản để chắc chắn mọi thứ đã sẵn sàng:

ollama --version

Bước 3: Tối ưu hóa cấu hình Systemd

Mặc định, Ollama sẽ lắng nghe trên địa chỉ 127.0.0.1 (localhost). Để quản lý cấu hình (ví dụ thay đổi đường dẫn lưu model sang ổ cứng gắn ngoài nếu ổ cứng chính bị đầy – xem thêm về xử lý lỗi VPS đầy ổ cứng), chúng ta sử dụng cơ chế override của systemd.

Mở trình chỉnh sửa cấu hình dịch vụ:

sudo systemctl edit ollama.service

Tại đây, bạn có thể thêm các biến môi trường vào giữa phần comment. Nếu bạn cần đổi đường dẫn lưu Model (ví dụ sang /mnt/volume_data), hãy thêm nội dung sau:

[Service]
Environment="OLLAMA_MODELS=/mnt/volume_data/ollama/models"

Sau khi chỉnh sửa, hãy tải lại daemon và khởi động lại dịch vụ:

sudo systemctl daemon-reload
sudo systemctl restart ollama

Chiến lược lựa chọn và cài đặt Model (DeepSeek & Llama)

Sau khi cài đặt Ollama thành công, bước tiếp theo là tải các “bộ não” (Model Weight) về máy chủ. Việc chọn đúng phiên bản model là cực kỳ quan trọng đối với hiệu năng của VPS.

DeepSeek-R1: “Vua” của khả năng lập luận (Reasoning)

DeepSeek-R1 hiện đang là hiện tượng toàn cầu nhờ khả năng giải toán và lập trình vượt trội. Trên VPS cấu hình hạn chế, chúng ta sẽ sử dụng các phiên bản “Distill” (chưng cất).

  • DeepSeek-R1-Distill-Qwen-7B: Phiên bản này dựa trên kiến trúc Qwen 2.5. Nó đặc biệt xuất sắc trong các tác vụ Logic, Toán học và Lập trình (Coding). Đây là lựa chọn số 1 cho VPS 8GB RAM.
    Lệnh tải:

    ollama pull deepseek-r1:7b
  • DeepSeek-R1-Distill-Llama-8B: Phiên bản này dựa trên kiến trúc Llama 3.1. Nó có thế mạnh về ngôn ngữ tự nhiên, viết lách sáng tạo và tuân thủ các chỉ dẫn phức tạp về văn phong.
    Lệnh tải:

    ollama pull deepseek-r1:8b

Meta Llama 3: Sự ổn định và đa dụng

Nếu bạn cần một Chatbot đa năng, ổn định và hỗ trợ tiếng Anh tốt nhất, Llama 3 (hoặc bản nâng cấp Llama 3.1) là tiêu chuẩn của ngành.

ollama pull llama3

Kiểm tra danh sách model đã tải:

ollama list

Triển khai giao diện Open WebUI (chuẩn hóa như ChatGPT)

Phát triển mã nguồn ít

Để tương tác với AI, thay vì sử dụng màn hình dòng lệnh khô khan, chúng ta sẽ cài đặt Open WebUI. Đây là giao diện quản lý Local LLM mạnh mẽ, đẹp mắt và có trải nghiệm người dùng gần như tương đồng với ChatGPT.

Chúng ta sẽ sử dụng Docker để triển khai. Nếu bạn muốn quản lý các container trực quan hơn sau này, có thể tham khảo cách cài đặt Portainer trên VPS Linux.

Cài đặt Docker

Nếu VPS của bạn chưa có Docker, hãy cài đặt nhanh bằng lệnh:

curl -fsSL https://get.docker.com | sh

Chạy Container Open WebUI (cấu hình mạng nội bộ)

Đây là bước quan trọng về bảo mật. Chúng ta sẽ chạy Open WebUI và kết nối nó với Ollama thông qua mạng nội bộ của Docker. Điều này cho phép chúng ta không cần mở cổng 11434 của Ollama ra Internet, giảm thiểu bề mặt tấn công.

Hãy copy và chạy đoạn lệnh sau:

sudo docker run -d -p 3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -v open-webui:/app/backend/data \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main

Giải thích kỹ thuật:
--add-host=host.docker.internal:host-gateway: Cờ này cho phép container Docker nhìn thấy và kết nối với dịch vụ Ollama đang chạy trên máy chủ (Host) thông qua địa chỉ nội bộ host.docker.internal.
-p 3000:8080: Ánh xạ cổng giao diện web ra cổng 3000 của VPS.

Bảo mật chuyên sâu: Reverse Proxy và cô lập mạng

Minh họa Proxy Server

Đến bước này, hệ thống đã hoạt động. Tuy nhiên, để đưa vào sử dụng thực tế (Production), chúng ta cần thiết lập hàng rào bảo mật. Việc mở trực tiếp cổng web (3000) hay cổng API (11434) ra internet là rất nguy hiểm.

Thiết lập Nginx Reverse Proxy (khuyên dùng)

Reverse Proxy đóng vai trò là “người gác cổng”, giúp mã hóa dữ liệu (SSL/HTTPS) và giấu đi cấu trúc hạ tầng bên trong.

1. Cài đặt Nginx:

sudo apt install nginx -y

2. Tạo file cấu hình cho WebUI:

sudo nano /etc/nginx/sites-available/chat-ai

3. Dán nội dung cấu hình sau (Thay thế ten_mien_cua_ban.com bằng domain thực tế):

server {
    listen 80;
    server_name ten_mien_cua_ban.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

4. Kích hoạt cấu hình:

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

Bảo vệ quyền riêng tư tuyệt đối (chặn Telemetry)

Mặc định, Ollama có thể gửi một số siêu dữ liệu ẩn danh (Telemetry) về máy chủ để kiểm tra cập nhật. Để đảm bảo 100% dữ liệu không rời khỏi VPS, chúng ta sẽ sử dụng tường lửa UFW để “cắt” internet của Ollama sau khi đã tải xong model.

Xác định ID của người dùng ollama:

id -u ollama

(Giả sử kết quả trả về là 998)

Thêm luật chặn kết nối ra ngoài (Outbound) cho người dùng này:

sudo ufw deny out from any to any owner 998

Lúc này, Ollama vẫn hoạt động bình thường trong nội bộ (Localhost) để phục vụ Open WebUI, nhưng hoàn toàn không thể gửi bất kỳ gói tin nào ra Internet. Lưu ý: Khi bạn muốn tải model mới trong tương lai, bạn cần xóa luật này tạm thời.

Xử lý sự cố thường gặp (Troubleshooting)

Trong quá trình vận hành, bạn có thể gặp một số vấn đề về tài nguyên. Dưới đây là cách khắc phục:

Lỗi OOM (Out of Memory) hoặc tiến trình bị Kill

Đây là lỗi phổ biến nhất trên VPS 8GB RAM khi tải các model nặng. Hệ thống sẽ tự động tắt tiến trình Ollama để bảo vệ OS.

Giải pháp: Tạo bộ nhớ ảo (Swap File) để hỗ trợ RAM vật lý.

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Để Swap tồn tại vĩnh viễn, thêm dòng /swapfile none swap sw 0 0 vào file /etc/fstab.

Open WebUI báo lỗi “Connection Error”

Khắc phục: Kiểm tra lại lệnh Docker xem đã có cờ --add-host chưa. Nếu bạn sử dụng Firewall, hãy chắc chắn rằng giao diện mạng Docker (docker0) không bị chặn kết nối đến localhost.

Câu hỏi thường gặp (FAQ)

1. Ollama có hỗ trợ chạy trên GPU VPS không? Có bắt buộc không?

Có hỗ trợ, nhưng không bắt buộc.

  • Hỗ trợ: Ollama tự động tối ưu hóa cực tốt cho VPS có GPU NVIDIA (CUDA), giúp tốc độ phản hồi nhanh gấp 10-20 lần.
  • Không bắt buộc: Bạn hoàn toàn có thể chạy trên CPU (hỗ trợ AVX2) với tốc độ chấp nhận được (5-10 tokens/s) cho các nhu cầu cá nhân.

2. VPS 4GB RAM có chạy được DeepSeek-R1 không?

Có, nhưng chỉ chạy được phiên bản nhỏ. Với 4GB RAM, bạn nên dùng bản DeepSeek-R1 Distill Qwen 1.5B (nhẹ, nhanh). Nếu cố chạy bản 7B hoặc 8B, VPS sẽ bị tràn RAM (OOM) và treo máy ngay lập tức, trừ khi bạn tạo bộ nhớ ảo (Swap) rất lớn nhưng sẽ rất chậm.

3. Làm sao để truy cập WebUI (Open WebUI) từ xa an toàn?

Tuyệt đối không mở port trực tiếp. Giải pháp an toàn nhất là sử dụng Cloudflare Tunnel (miễn phí, không cần mở port Inbound) hoặc cài đặt Nginx Reverse Proxy có xác thực SSL như hướng dẫn trong bài viết. Nếu dùng cá nhân nhanh gọn, bạn có thể dùng SSH Tunneling để forward port về máy tính local.

4. Tại sao Ollama trả lời rất chậm (dưới 1 token/giây)?

3 nguyên nhân chính:

  1. Cấu hình yếu: VPS không hỗ trợ tập lệnh AVX2 (thường gặp ở VPS giá rẻ đời cũ).
  2. Tràn RAM: Chạy model quá nặng so với RAM thật, hệ thống phải dùng ổ cứng làm RAM (Swap).
  3. Quá tải: VPS đang gánh quá nhiều tác vụ khác (Web server, Database…).

5. Tôi muốn đổi thư mục lưu Model sang ổ đĩa khác được không?

Được. Hãy gắn thêm ổ đĩa (Volume), sau đó dùng lệnh systemctl edit ollama.service và thêm dòng Environment="OLLAMA_MODELS=/đường/dẫn/mới" để chuyển nơi lưu trữ.

6. Làm thế nào để cập nhật Ollama lên phiên bản mới nhất?

Chỉ cần chạy lại đúng câu lệnh cài đặt ban đầu. Hệ thống sẽ tự động cập nhật bản mới và giữ nguyên dữ liệu model cũ:

curl -fsSL https://ollama.com/install.sh | sh

Kết luận

Bằng việc kết hợp sức mạnh của Ollama, trí thông minh của DeepSeek-R1 và giao diện chuyên nghiệp của Open WebUI, bạn đã xây dựng thành công một hệ thống AI riêng tư mạnh mẽ ngay trên hạ tầng Linux.

Giải pháp này không chỉ giúp bạn tiết kiệm chi phí API đắt đỏ mà còn mang lại sự an tâm tuyệt đối về bảo mật dữ liệu. Đây chính là bước đi đầu tiên vững chắc để bạn làm chủ công nghệ AI trong môi trường doanh nghiệp hoặc dự án cá nhân.

Tài liệu tham khảo