Có thể tự host Claude không? Câu trả lời thật
Không thể tự host Claude vì Anthropic không công khai model weights. Tìm hiểu lựa chọn thay thế: open model, gateway tự quản lý và Claude Code trên server của bạn.
Bạn có thể tự host Claude không? Không, và đây là lý do
Bạn không thể tự host Claude. Anthropic không công bố model weights, nên không có file để tải xuống, không có container để chạy và không có licence cho phép bạn serve model này từ phần cứng của mình. Mọi request đến Claude đều đi tới API của Anthropic hoặc một hosted partner như Amazon Bedrock, Google Vertex AI hay Microsoft Foundry. Chạy Claude trên máy do bạn sở hữu không phải là vấn đề cấu hình. Artefact này đơn giản là không tồn tại bên ngoài Anthropic.
Đó là câu trả lời ngắn. Câu trả lời đầy đủ hơn là hầu hết những người đặt câu hỏi này thực ra không cần model weights. Họ cần một trong ba thứ, và cả ba đều có thể triển khai trên server do bạn kiểm soát: một model đủ năng lực chạy local, một gateway giữ API key của họ và giới hạn chi phí, hoặc một coding agent chạy trên chính máy của họ thay vì laptop. Hướng dẫn này bao gồm cả ba, kèm các command.
“Self-hosted Claude” thường có nghĩa là gì
Lưu lượng tìm kiếm cho cụm từ “self-hosted Claude” thường phản ánh một vài nhu cầu khác nhau, và mỗi nhu cầu cần một cách giải quyết riêng.
Một số người muốn bảo mật quyền riêng tư. Họ không muốn prompt rời khỏi network của mình. Chỉ một model local có open weight mới giải quyết được việc này, vì mọi request đến Claude theo định nghĩa đều là request gửi đến Anthropic.
Một số người muốn kiểm soát chi phí. Họ lo một agent chạy mất kiểm soát và tiêu hết credit. Gateway giải quyết được việc này và hoạt động với Claude, nên bạn vẫn giữ được chất lượng model.
Một số người muốn không phụ thuộc vào laptop. Họ muốn agent tiếp tục chạy khi gập máy. VPS giải quyết được việc này, và Claude Code chạy ổn định trên đó.
Một số người muốn có mô hình “self-hosted OpenRouter”. Đây cũng là một gateway, và lựa chọn thường dùng là LiteLLM.
Hãy xác định bạn thuộc trường hợp nào, vì cách triển khai phù hợp sẽ khác nhau trong từng trường hợp.
Tự host model open weight bằng Ollama
Nếu yêu cầu là không có prompt nào rời khỏi server, hãy chạy một model open weight. Các họ model hiện thực sự dùng được trên server thuê gồm Llama, Qwen, Mistral, Gemma và DeepSeek. Tất cả đều công bố weights để bạn tải xuống và chạy.
Ollama là cách nhanh nhất để bắt đầu. Install script chỉ có một dòng và script này thiết lập một systemd service trên Ubuntu.
curl -fsSL https://ollama.com/install.sh | sh
systemctl status ollamasystemctl status ollama phải in ra active (running). Sau đó pull một model và tương tác với model đó.
ollama pull qwen3:8b
ollama run qwen3:8b "Summarise what a reverse proxy does in two sentences."Lần pull đầu sẽ tải xuống vài GB, nên model phải vừa trong RAM hoặc GPU memory trước khi có thể trả lời. Quy tắc ước tính cho quantised model: model 8 billion parameter cần khoảng 6 GB trống, model 14 billion parameter cần khoảng 10 GB, còn model 70 billion parameter cần nhiều memory hơn hầu hết gói VPS đa dụng có sẵn. Nếu máy thiếu memory, kernel sẽ kill process và bạn sẽ thấy Error: llama runner process has terminated, cùng một dòng out of memory trong dmesg. Kiểm tra free -h trước khi cho rằng model bị lỗi. Cùng ngân sách memory đó cũng quyết định model thực sự đọc được bao nhiêu phần của prompt dài, vì Ollama âm thầm truncate mọi nội dung vượt quá context window mặc định khá nhỏ. Vì vậy, tăng num_ctx và phân bổ KV cache phù hợp là việc đầu tiên cần kiểm tra khi tài liệu dài chỉ được tóm tắt một nửa.
Ollama cũng cung cấp HTTP API trên 127.0.0.1:11434. Nhờ đó, các phần mềm khác có thể sử dụng Ollama thay vì chỉ dùng nó như một chat toy.
curl http://127.0.0.1:11434/api/generate -d '{"model":"qwen3:8b","prompt":"ping","stream":false}'Nếu request đầu tiên sau một khoảng thời gian không hoạt động mất 30 giây, còn request tiếp theo trả về ngay lập tức, thì không có gì bị hỏng: Ollama unload model sau 5 phút idle. Giữ model thường trú bằng keep_alive sẽ loại bỏ thời gian reload đó.
Hãy để port này chỉ bind vào localhost. Một Ollama port mở trên public IP chẳng khác nào cung cấp GPU miễn phí cho bất kỳ ai tìm thấy nó. Bản hướng dẫn đầy đủ, gồm systemd unit, GPU detection và cách đặt reverse proxy phía trước, có trong hướng dẫn chạy Ollama trên VPS. Nếu bạn phục vụ nhiều hơn một user cùng lúc, hãy đọc bài so sánh Ollama và vLLM trước, vì thiết kế single stream của Ollama sẽ trở thành bottleneck từ lâu trước khi hardware bị giới hạn.
Hãy đánh giá đúng khoảng cách. Một open model tốt trên VPS tầm trung thực sự hữu ích cho việc tóm tắt, phân loại, soạn thảo và trích xuất đơn giản. Với suy luận dài qua nhiều bước, codebase lớn và việc sử dụng tool theo kiểu agent, model này vẫn kém xa frontier hosted model; không có mức prompt tuning nào có thể xóa bỏ khoảng cách đó. Hãy chọn local model cho những công việc nó làm tốt, và trả phí cho hosted model khi độ khó thực sự cao.
Tự chạy gateway với LiteLLM
Đây là “OpenRouter tự host” mà nhiều người đang tìm kiếm. Gateway nằm giữa các ứng dụng của bạn và mọi nhà cung cấp model. Ứng dụng chỉ giữ một key trỏ đến server của bạn. Các key thật của nhà cung cấp chỉ nằm trên server đó. Bạn có thể giới hạn chi phí theo từng key, định tuyến các ứng dụng khác nhau đến các model khác nhau và ghi log mọi request tại một nơi.
LiteLLM là lựa chọn phổ biến vì nó cung cấp API tương thích với OpenAI và proxy đến Anthropic, Ollama cùng hầu hết nhà cung cấp khác qua cùng một endpoint. Chạy LiteLLM trong Docker với một file cấu hình.
model_list:
- model_name: claude
litellm_params:
model: anthropic/claude-sonnet-5
api_key: os.environ/ANTHROPIC_API_KEY
- model_name: local
litellm_params:
model: ollama/qwen3:8b
api_base: http://127.0.0.1:11434Lưu nội dung đó vào litellm_config.yaml rồi khởi động proxy. Proxy lắng nghe trên port 4000.
docker run -v $(pwd)/litellm_config.yaml:/app/config.yaml \
-e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
-e LITELLM_MASTER_KEY=sk-1234 \
-p 4000:4000 docker.litellm.ai/berriai/litellm:latest \
--config /app/config.yamlLITELLM_MASTER_KEY là credential quản trị, nên hãy bảo vệ nó như root password và không dùng giá trị mẫu khi triển khai. Gọi proxy giống hệt cách bạn gọi một API hosted.
curl http://localhost:4000/v1/chat/completions \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{"model": "claude","messages": [{"role": "user","content": "Say hello in five words."}]}'Response khỏe mạnh là JSON bình thường có một array choices. Lỗi 401 nghĩa là header Authorization không khớp với master key của bạn. Lỗi 400 kèm tên model nghĩa là model trong request không khớp với bất kỳ model_name nào trong file cấu hình.
Lý do xây dựng hệ thống này thay vì gọi trực tiếp đến Anthropic là để giới hạn chi phí. Tạo một virtual key riêng cho mỗi ứng dụng và đặt budget riêng cho từng key.
curl 'http://0.0.0.0:4000/key/generate' \
--header 'Authorization: Bearer sk-1234' \
--header 'Content-Type: application/json' \
--data-raw '{"models": ["claude"], "max_budget": 100}'Key đó có thể được phép chi tối đa one hundred dollars và chỉ truy cập một model, không được làm gì khác. Khi một agent hoạt động sai lúc ba giờ sáng, phạm vi ảnh hưởng chỉ giới hạn ở một key thay vì toàn bộ account của bạn. Pattern này, cùng với hoạt động monitoring đi kèm, được trình bày trong kiểm soát chi phí agent trên VPS. Nếu bạn vẫn đang cân nhắc có nên trả tiền theo token hay không, so sánh chi phí API và subscription sẽ phân tích cụ thể các phép tính.
Lưu ý những việc gateway không làm được. Nó không biến Claude thành local và không che giấu prompt của bạn với Anthropic. Request vẫn rời server của bạn để đến nhà cung cấp. Đổi lại, bạn kiểm soát được key, chi phí, định tuyến và log.
Chạy Claude Code trên VPS của bạn
Điều ước thứ ba là điều dễ thực hiện nhất. Claude Code là một client. Nó chạy ở bất kỳ nơi nào bạn cài Node.js và giao tiếp với API qua HTTPS. Cài nó trên server của bạn giúp agent tiếp tục hoạt động sau khi bạn tắt laptop. Phạm vi ảnh hưởng của agent cũng chỉ nằm trong một máy mà bạn có thể rebuild, thay vì máy chính của bạn.
npm install -g @anthropic-ai/claude-code
claude --versionChạy nó bên trong tmux để kết nối SSH bị ngắt không làm dừng một job đang chạy lâu. Phần thiết lập này, bao gồm cách quản lý session, được trình bày trong chạy Claude Code trên VPS với tmux. Cấp cho agent một user không có quyền cao. Đọc các quy tắc an toàn khi chạy Claude Code trên server trước khi cho agent quyền ghi vào bất kỳ dữ liệu nào quan trọng với bạn.
Đây là self-host agent, không phải self-host model. Cần phân biệt rõ hai việc này vì nhiều người thường đánh đồng chúng. Bạn sở hữu process, filesystem, network egress và log. Anthropic vẫn sở hữu inference.
Chi phí thực tế của từng lựa chọn
Giá có thể thay đổi, vì vậy hãy xem các mức này là quy mô chi phí, không phải báo giá cố định. Tính đến July 2026, Claude Sonnet 5 có giá $3 cho mỗi triệu input token và $15 cho mỗi triệu output token; Claude Opus 5 có giá lần lượt là $5 và $25. Model local không tính phí theo token, nhưng bạn vẫn phải trả chi phí server mỗi tháng, dù có sử dụng hay không.
Điểm hòa vốn thấp hơn nhiều người nghĩ. Một VPS có đủ memory để chạy một open model hữu ích vẫn tốn tiền mỗi tháng và phần lớn thời gian ở trạng thái idle. Nếu nhu cầu sử dụng tăng giảm theo từng đợt, hosted API thường rẻ hơn. Nếu nhu cầu sử dụng liên tục hoặc dữ liệu không được phép rời khỏi network, model local thường có lợi ở cả hai điểm.
Câu trả lời thực tế mà hầu hết team lựa chọn là kết hợp cả hai. Chạy một open model local cho các tác vụ có volume cao và độ khó thấp. Chuyển các request khó sang một hosted frontier model. Đặt một gateway phía trước cả hai để application không cần biết request được xử lý bởi model nào, đồng thời có thể điều chỉnh ranh giới giữa chúng mà không sửa application code. Đây là phiên bản thực tế của "self hosted Claude"; khác với phiên bản theo nghĩa đen, nó thực sự tồn tại. Nếu bạn cũng muốn tự chạy toàn bộ agent stack, bài tổng hợp về các self-hosted AI agent sẽ trình bày những lựa chọn hiện có.
FAQ
Tôi có thể tải weights của model Claude xuống và chạy cục bộ không?
Không. Anthropic chưa từng phát hành weights cho bất kỳ model Claude nào và không có license nào cho phép tự host. Bất kỳ thứ gì được quảng cáo online là “model Claude” có thể là một model khác nhưng dùng tên gây hiểu nhầm, hoặc một wrapper gọi API. Nếu nó cần API key thì đó không phải chạy cục bộ.
Model open nào gần với Claude nhất?
Không có model nào hoàn toàn tương đương, và các model dẫn đầu thay đổi sau mỗi vài tháng. Những dòng model có open weight đáng để thử gồm Llama, Qwen, Mistral, Gemma và DeepSeek. Với việc tóm tắt, phân loại và chỉnh sửa code đơn giản, một model open tốt có 8 đến 14 tỷ parameters thực sự hữu ích. Với suy luận nhiều bước trên ngữ cảnh dài và việc sử dụng tool theo kiểu agent, khoảng cách so với frontier model được host vẫn còn lớn. Hãy kiểm thử bằng prompt của chính bạn thay vì chỉ tin vào leaderboard.
LiteLLM có phải là OpenRouter tự host không?
Về chức năng định tuyến và quản lý key thì đúng. LiteLLM chạy trên server của bạn, cung cấp một endpoint tương thích với OpenAI và proxy đến Anthropic, Ollama cùng hầu hết provider khác. Bạn có giới hạn chi tiêu theo từng key, định tuyến model và một nơi duy nhất để đọc log. LiteLLM không cung cấp inference cục bộ: request đến Claude vẫn đi qua Anthropic.
Chạy Claude Code trên server riêng có giữ code của tôi ở chế độ riêng tư không?
Không. Claude Code gửi nội dung các file mà nó đọc đến Anthropic API, bất kể process đang chạy ở đâu. VPS chỉ cung cấp isolation cho agent, không bảo vệ riêng tư cho nội dung. Hãy cấp cho nó một user không có quyền đặc biệt, không cho nó truy cập credential và các repository không liên quan, đồng thời coi mọi thứ nó có thể đọc là dữ liệu sẽ rời khỏi server.