Cài đặt
Chạy Claude Code trên VPS
Một máy chủ nhỏ luôn bật đưa Claude Code ra khỏi laptop và để nó tiếp tục làm việc khi bạn không ngồi trước máy. Đây là một cách cài đặt dựng nhanh, để chạy liên tục vẫn an toàn, và còn chỗ cho các agent lập trình khác.
Trả lời nhanh
Thuê một VPS Linux có ít nhất 4 GB RAM, tạo một user không phải root và chuyển SSH sang chỉ đăng nhập bằng khóa. Sau đó cài Claude Code bằng curl -fsSL https://claude.ai/install.sh | bash (không cần Node.js) và đăng nhập bằng claude auth login, dán mã lại qua SSH. Giữ phiên luôn chạy bằng tmux, Remote Control hoặc một session daemon như Maude.
Chạy Claude Code trên máy chủ thay vì laptop mang lại cho bạn ba điều. Nó vẫn làm việc khi laptop đã gập. Nó sống sót qua những lần rớt kết nối. Và nó đặt agent lên một máy bạn có thể bỏ đi bất cứ lúc nào, chứ không phải chiếc máy chứa khóa SSH và hồ sơ trình duyệt của bạn. Hướng dẫn này trình bày một cách cài đặt mất khoảng mười lăm phút trên một máy Debian hoặc Ubuntu mới tinh. Các bước tương tự cũng chạy được trên Alpine và Fedora với vài thay đổi nhỏ.
Bạn cần một gói Claude có kèm Claude Code: Pro, Max, Team hoặc Enterprise, hay một tài khoản Console. Gói claude.ai miễn phí không bao gồm Claude Code. Đăng nhập bằng gói đăng ký của bạn là không phải quản lý API key và không bị tính thêm phí theo mức dùng.
1. Chọn máy
Yêu cầu hệ thống của Anthropic ghi 4 GB RAM trở lên và bộ xử lý x64 hoặc ARM64. Các hệ Linux được hỗ trợ là Ubuntu 20.04+, Debian 10+ và Alpine 3.19+. Trên thực tế, toolchain của dự án quyết định nhiều hơn là bản thân CLI:
- 4 GB: mức tối thiểu theo tài liệu, đủ cho một phiên trên một dự án vừa phải.
- 8 GB: nếu bạn build thứ gì đó đáng kể (một bundler, một bộ test, một hai container) hoặc chạy nhiều phiên cùng lúc.
- 16 GB: nếu bạn chạy nhiều agent song song, hoặc chạy kèm một database.
Hetzner, DigitalOcean, Scaleway, OVH, Vultr và nhiều nhà cung cấp khác đều dùng được, kể cả một chiếc máy cũ dưới gầm bàn. Hãy chọn khu vực gần bạn nếu có lúc bạn sẽ gõ vào terminal trên đó. Máy ARM thường rẻ nhất tính theo mỗi gigabyte, và Claude Code chạy native trên đó. Hướng dẫn chọn VPS tốt nhất cho agent lập trình của chúng tôi so sánh các nhà cung cấp và cấu hình.
2. Tạo user không phải root
Nhiều image VPS cho bạn đăng nhập bằng root. Đừng chạy agent bằng root. Làm vậy biến mọi sai sót thành sai sót trên toàn hệ thống. Claude Code cũng từ chối khởi động ở chế độ bypass-permissions khi chạy bằng root, nên sớm muộn gì bạn cũng cần một user thường. Trên Debian hoặc Ubuntu:
adduser dev
usermod -aG sudo dev
rsync --archive --chown=dev:dev ~/.ssh /home/dev
Trên Fedora, nhóm quản trị là wheel thay vì sudo. Trên Alpine, hãy cài sudo hoặc doas trước. Dòng cuối sao chép khóa bạn đang dùng để đăng nhập, để bạn có thể kết nối lại bằng dev trước khi khóa chặt bất cứ thứ gì. Hãy thử từ một terminal thứ hai trước khi đóng terminal đầu tiên. Tự khóa mình ra ngoài một VPS mới tinh là "lễ nhập môn" mà bạn nên bỏ qua.
3. Khóa SSH và tăng cường bảo mật
Nếu bạn vẫn đăng nhập bằng mật khẩu, hãy chuyển sang khóa trước. Tạo một khóa trên máy tính bằng ssh-keygen -t ed25519, rồi chép lên bằng ssh-copy-id dev@your-server. Khi đăng nhập bằng khóa đã chạy, sửa /etc/ssh/sshd_config:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
Rồi khởi động lại SSH: sudo systemctl restart ssh trên Debian và Ubuntu. Trên Fedora, dịch vụ có tên sshd, nên hãy chạy sudo systemctl restart sshd. Muốn chặt hơn, thêm fail2ban và một tường lửa chỉ cho phép SSH. Nếu máy hoàn toàn không cần ra internet công cộng, hãy đưa nó vào một mạng Tailscale. Điện thoại của bạn tham gia cùng mạng đó và kết nối thẳng tới máy.
Từ điện thoại: các ứng dụng SSH có thể tạo khóa ngay trên thiết bị và hiển thị nửa công khai để bạn dán vào ~/.ssh/authorized_keys. Maude làm việc này thay bạn: nút "Thiết lập đăng nhập bằng khóa" tạo một khóa qua kết nối bạn đã đăng nhập sẵn. Nó cài nửa công khai, kiểm tra khóa mới, và chỉ giữ nửa bí mật trong keychain của điện thoại.
4. Cài Claude Code
Anthropic hiện khuyến nghị dùng native installer, không cần Node.js. Chạy bằng user thường của bạn, không dùng sudo:
curl -fsSL https://claude.ai/install.sh | bash
claude --version
claude doctor
Nó đặt trình khởi chạy tại ~/.local/bin/claude và tự cập nhật ở chế độ nền. claude doctor kiểm tra bản cài và cài đặt của bạn mà không mở phiên nào. Vài lựa chọn khác, tất cả đều từ tài liệu cài đặt:
- Kho apt, dnf và apk có ký số nếu bạn muốn trình quản lý gói của hệ thống quản lý nó. Các bản này không tự cập nhật; bạn nâng cấp cùng với phần còn lại của hệ thống.
- npm vẫn dùng được (
npm install -g @anthropic-ai/claude-code, Node.js 22 trở lên). Nó cài cùng một binary native. Anthropic khuyên không nên dùngsudo npm install -g. - Alpine cần
bash,curl,libgcc,libstdc++vàripgrep, cộng thêmUSE_BUILTIN_RIPGREP=0trong cài đặt của bạn.
Nếu một hướng dẫn cũ bảo bạn cài Node trước, giờ bạn có thể bỏ qua bước đó.
5. Đăng nhập không cần trình duyệt
Chạy claude (hoặc claude auth login) và làm theo hướng dẫn. VPS không có trình duyệt, nên bạn sẽ mở URL đăng nhập trên một thiết bị bất kỳ khác. Claude Code cho phép bạn nhấn c để sao chép URL. Đăng nhập ở đó. Khi trình duyệt không gọi được callback cục bộ của Claude Code, điều bình thường khi dùng qua SSH, nó sẽ hiển thị một mã. Dán mã đó vào dòng Paste code here if prompted là việc đăng nhập hoàn tất trên máy chủ.
Thông tin đăng nhập được lưu trong ~/.claude/.credentials.json với quyền 0600. Hãy đối xử với máy cho phù hợp: bất kỳ ai có shell dưới user đó đều dùng được gói Claude của bạn. Với script và CI, còn có claude setup-token, lệnh này in ra một token có hạn một năm để bạn đặt vào CLAUDE_CODE_OAUTH_TOKEN. Theo tài liệu xác thực, token đó chỉ gửi được yêu cầu tới model và không khởi tạo được phiên Remote Control.
6. Giữ cho nó luôn chạy
Bất cứ thứ gì bạn chạy ở foreground của một phiên SSH đều chết theo kết nối đó. Cách khắc phục thông thường là tmux:
sudo apt install tmux
tmux new -s work
# start claude, then detach with Ctrl-B then D
tmux attach -t work
Bạn có thể detach, mất sóng, kết nối lại sau vài giờ rồi attach lại, và phiên vẫn nguyên vẹn. Tuy vậy, tmux không sống sót qua một lần khởi động lại. Sau khi khởi động lại, claude --continue tiếp tục cuộc trò chuyện gần nhất trong thư mục đó. Hướng dẫn giữ Claude Code chạy tiếp sau khi gập laptop của chúng tôi trình bày các lựa chọn khác, gồm cả systemd và session daemon.
7. Cùng một máy, thêm agent
Một máy chủ chạy được Claude Code thì cũng chạy được các agent lập trình khác bên cạnh. Mỗi agent cài vào thư mục home của bạn và giữ thông tin đăng nhập riêng, nên chúng không cản trở nhau. Hãy chừa đủ RAM cho từng agent chạy cùng lúc.
| Agent | Cài đặt | Đăng nhập không cần trình duyệt |
|---|---|---|
| Codex (OpenAI) | npm install -g @openai/codex | codex login --device-auth (bật đăng nhập bằng mã thiết bị trong cài đặt bảo mật ChatGPT trước) hoặc API key |
| OpenCode | curl -fsSL https://opencode.ai/install | bash | /connect trong TUI, rồi dán key của nhà cung cấp |
| Grok Build (xAI) | curl -fsSL https://x.ai/cli/install.sh | bash | Đăng nhập qua trình duyệt ở lần chạy đầu, hoặc XAI_API_KEY |
Antigravity CLI (Google, agy) | curl -fsSL https://antigravity.google/cli/install.sh | bash | Qua SSH, nó in ra một URL và bạn dán mã lại, hoặc đặt GEMINI_API_KEY |
Nguồn: xác thực Codex, tài liệu OpenCode, tài liệu Grok Build, cài đặt Antigravity CLI, kiểm tra vào tháng 10 năm 2026. Codex và Antigravity có hướng dẫn riêng: Codex CLI trên VPS và Antigravity CLI trên máy chủ. Gemini CLI không còn là lựa chọn cho tài khoản Google cá nhân, và Antigravity CLI là công cụ thay thế của Google.
8. Truy cập từ điện thoại
Có ba cách, từ nhiều thao tác tay nhất đến ít nhất:
Một ứng dụng SSH và tmux. Termius, Blink hay bất kỳ client nào khác, attach vào tmux session của bạn. Miễn phí và đầy đủ, nhưng bạn phải điều khiển một terminal toàn màn hình bằng bàn phím ảo. Đây là phần so sánh.
Remote Control. Chạy claude remote-control trong tmux và mở phiên từ tab Code của ứng dụng Claude. Tính năng này có sẵn trong Pro, Max, Team và Enterprise. Tài liệu của Anthropic gợi ý dùng tmux hoặc screen cho đúng trường hợp này. Nó chỉ dùng được cho Claude, và các yêu cầu cấp quyền mà phiên đưa ra sẽ đến điện thoại để bạn trả lời. Ứng dụng không chuyển được phiên sang Auto hay Bypass permissions.
Maude. Maude làm các bước 4 và 6 thay bạn, còn bước 5 chuyển sang điện thoại của bạn. Bạn thêm máy chủ bằng địa chỉ, bằng cách dán một lệnh ssh …, hoặc quét mã QR từ curl -fsSL https://maude.pilotdev.fr/setup | sh. Nếu bạn đang đăng nhập bằng root, một nút bấm sẽ tạo user không phải root ở bước 2 thay bạn. Sau đó Maude tự triển khai daemon qua SSH và cài từng agent ở phiên bản chúng tôi đã kiểm thử và ghim. Bạn đăng nhập Claude, Codex hay bất kỳ agent nào khác ngay trên điện thoại. Các phiên vẫn chạy trên máy chủ khi ứng dụng đã đóng, và máy chủ chủ động kết nối tới relay của Maude, nên vẫn dùng được sau NAT mà không cần mở cổng.
9. Quyết định về quyền
Giờ đến câu hỏi thú vị: bạn để nó tự làm bao nhiêu khi không có người trông? Một máy chủ bạn có thể dựng lại là nơi phù hợp để nới lỏng quyền, miễn là bạn thật sự coi nó là thứ dùng xong bỏ được. Chế độ auto của Claude Code, nơi một bộ phân loại tự phê duyệt các thao tác an toàn, lấp được phần lớn khoảng trống đó. Bypass hoàn toàn có những quy tắc riêng, gồm cả giới hạn về root ở bước 2. Chúng có trang riêng: chạy Claude Code với toàn quyền một cách an toàn.
Hãy thiết lập máy sao cho nếu mất nó thì chỉ phiền chứ không nghiêm trọng. Push công việc lên remote thường xuyên, không để trên đó bí mật nào không có bản ở nơi khác, và luôn nghĩ rằng có thể bạn sẽ dựng lại nó. Khi điều đó đúng, mọi quyết định ở trên đều dễ hơn.
Điều khiển từ điện thoại
Khi máy chủ đã chạy, Claude Code trên điện thoại giải thích cách Maude điều khiển nó. Nếu Claude không phải agent duy nhất của bạn, hãy bắt đầu từ tổng quan về các agent.
Câu hỏi thường gặp
Claude Code cần bao nhiêu RAM?
Tôi có thể đăng nhập Claude Code trên máy chủ mà không cần trình duyệt không?
claude hoặc claude auth login, mở URL nó đưa ra trên một thiết bị bất kỳ và đăng nhập. Qua SSH, trình duyệt thường hiển thị một mã thay vì chuyển hướng về; hãy dán mã đó vào dấu nhắc trong terminal. Với script không tương tác, claude setup-token tạo một token dài hạn, nhưng token này không khởi tạo được phiên Remote Control.Tôi có nên chạy bằng root không?
Nhiều agent có dùng chung một VPS được không?
Tôi có còn cần Node.js không?
Những gì đã thay đổi
- — Chuyển cách cài sang native installer của Anthropic (không còn cần Node.js); hướng dẫn về RAM khớp với mức tối thiểu 4 GB theo tài liệu; thêm luồng đăng nhập không cần trình duyệt bằng cách dán mã và setup-token; thêm phần mới về chạy Codex, OpenCode, Grok Build và Antigravity trên cùng một máy.
- — Đăng lần đầu.