Claude Code Tổng Hợp

Cách cài Claude Code lên VPS Ubuntu 24.04 trong 10 phút

Hướng dẫn cài Claude Code CLI trên VPS Ubuntu 24.04 từng bước: Node.js 22, npm install, API key, tmux setup, MCP server, troubleshoot lỗi thường gặp.

Thanh Nguyễn Cập nhật Đăng 10 phút đọc 11 khối lệnh

Cách cài Claude Code lên VPS Ubuntu 24.04 trong 10 phút
Mục lục bài viết
  1. 1. Vì sao cài Claude Code trên VPS thay vì laptop?
  2. 2. Yêu cầu VPS
  3. 3. SSH vào VPS lần đầu
  4. 4. Cài Node.js 22 LTS
  5. 5. Cài Claude Code
  6. 6. Login Claude Code: subscription hay API key
  7. 7. Chạy prompt đầu tiên
  8. 8. tmux: giữ session không bị mất khi SSH disconnect
  9. 9. Vibe code từ mobile qua Termius/Tabby
  10. 10. Tạo file CLAUDE.md cho project
  11. 11. Gắn MCP server đầu tiên
  12. 12. Troubleshoot lỗi thường gặp
  13. FAQ

Cập nhật 31/10/2026: từ 30/10/2026 Anthropic đổi tên Max 5x thành Max và Max 20x thành Ultra, giá giữ nguyên 100 và 200 USD/tháng. Ultra bỏ giới hạn phiên 5 giờ khi tài khoản đã được xác minh, hạn mức theo tuần gấp 10 lần Pro; Max vẫn giữ giới hạn 5 giờ. Bài đã cập nhật theo tên mới. Xem chi tiết đổi tên gói.

Claude Code 2026 là agent terminal mạnh nhất hiện tại của Anthropic. Cài trên VPS Ubuntu rồi vibe code qua SSH từ điện thoại, laptop, iPad - vô cùng tiện. Bài này hướng dẫn cài từng bước, troubleshoot lỗi thường gặp, và setup nâng cao với tmux + MCP. Phù hợp dev VN mới làm quen Claude Code hoặc đang chuyển từ Cursor/Aider.

Mình test trên VPS Cloud TND gói Basic 2GB RAM Ubuntu 24.04.2 mới fresh install. Tổng thời gian từ SSH lần đầu tới chạy được câu prompt đầu tiên: 10 phút (gồm tải Node.js + login). Không cần kiến thức Linux nâng cao, copy paste là chạy được.

Mục tiêu cuối bài: bạn có Claude Code chạy trên VPS, login subscription hoặc API key, hiểu cách dùng tmux để task chạy nền, biết troubleshoot lỗi npm phổ biến, và setup MCP server đầu tiên (Filesystem).

1. Vì sao cài Claude Code trên VPS thay vì laptop?

  • Vibe code từ mobile: SSH qua Termius/Tabby, agent chạy trên VPS, bạn chỉ là client - viết code từ điện thoại Android cũng được.
  • Network ổn định: VPS có uptime 99.9%, không lo wifi nhà bị mất, không lo battery laptop hết.
  • Background agent: tmux + Claude headless chạy 8h đêm, sáng review PR.
  • Tách môi trường dev: VPS có tools sẵn (Docker, DB, n8n), không làm bẩn laptop personal.
  • Latency tốt: VPS HCM/HN tới Anthropic us-east ~200ms, tương đương laptop nhà.

2. Yêu cầu VPS

ResourceTối thiểuKhuyến nghịHeavy use
RAM1GB2GB4GB
vCPU124
SSD20GB40GB80GB
OSUbuntu 22.04Ubuntu 24.04 LTSUbuntu 24.04 LTS
Network100Mbps200Mbps500Mbps

VPS Cloud TND gói Basic 2GB/2vCPU/40GB SSD CEPH chạy thoải mái Claude Code + project Next.js/Python + tmux 4 session. Giá ~250k/tháng, ROI cực cao so với pricing Claude Code subscription.

3. SSH vào VPS lần đầu

Terminal3. SSH vào VPS lần đầubash
# Từ máy localssh [email protected]# Hoặc dùng SSH keyssh -i ~/.ssh/vps-key [email protected] # Update system trướcapt update && apt upgrade -yapt install -y curl git build-essential # Tạo user dev (không nên dùng root chạy Claude)useradd -m -s /bin/bash devusermod -aG sudo devpasswd devsu - dev

Luôn tạo user thường để chạy Claude Code, không dùng root. Lý do: agent có thể chạy shell command, root quyền cao có thể vô tình xoá hệ thống. User dev có sudo password, an toàn hơn.

4. Cài Node.js 22 LTS

Claude Code yêu cầu Node.js 22 trở lên (npm 10+). Ubuntu 24.04 mặc định có Node 20, cần update.

Terminal4. Cài Node.js 22 LTSbash
# Cài qua NodeSource (khuyến nghị)curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -sudo apt install -y nodejs # Kiểm tranode --version  # v22.x.xnpm --version   # 10.x.x

Cách thay thế: dùng nvm (Node Version Manager) nếu cần nhiều version Node song song. Mình hay dùng nvm vì quản lý dễ:

Terminal4. Cài Node.js 22 LTSbash
# Cài nvmcurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bashsource ~/.bashrc # Cài Node 22nvm install 22nvm use 22nvm alias default 22

5. Cài Claude Code

Terminal5. Cài Claude Codebash
# Cài globalnpm install -g @anthropic-ai/claude-code # Kiểm traclaude --version# Output: claude-code 1.x.x

Lỗi phổ biến lúc này: EACCES: permission denied khi npm install global. Lý do: npm prefix mặc định /usr/lib/node_modules thuộc root. Fix bằng cách đổi prefix sang home user:

Terminal5. Cài Claude Codebash
mkdir -p ~/.npm-globalnpm config set prefix ~/.npm-globalecho 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrcsource ~/.bashrcnpm install -g @anthropic-ai/claude-code

6. Login Claude Code: subscription hay API key

Claude Code có 2 cách auth:

  • Subscription (Pro 20$/Max 100-200$): chạy , nó in URL, copy URL paste vào browser laptop để login, claude.ai redirect về token. Quota chia sẻ với web Claude.
  • API key (pay-as-you-go): tạo key tại console.anthropic.com, export ANTHROPIC_API_KEY=$YOUR_KEY. Tính phí theo token, đắt hơn nếu dùng nhiều nhưng linh hoạt cho team share key.
Terminal6. Login Claude Code: subscription hay API keybash
# Cách 1: subscriptionclaude# Mở URL hiện ra trong browser, login claude.ai, copy token paste vào terminal # Cách 2: API keyecho 'export ANTHROPIC_API_KEY=sk-ant-api03-xxxxx' >> ~/.bashrcsource ~/.bashrcclaude

Khuyến nghị cho dev cá nhân: subscription Pro 20$ là sweet spot. Quota đủ cho 4-5 giờ/ngày làm việc. Nâng Max khi nào hay bị "context limit reached" 2-3 lần/ngày.

7. Chạy prompt đầu tiên

Terminal7. Chạy prompt đầu tiênbash
# Tạo project testmkdir -p ~/projects/hello-claudecd ~/projects/hello-claudeecho "# Hello Claude project" > README.mdgit init && git add . && git commit -m "init" # Khởi động Claudeclaude# Prompt: "Tạo file index.js in 'Hello Claude Code'"# Agent sẽ tạo file, hỏi confirm, save

Nếu thấy file index.js xuất hiện, Claude in "Hello Claude Code" - bạn đã setup thành công. Bây giờ thử task thật:

Terminal7. Chạy prompt đầu tiênbash
# Prompt advanced"Tạo Express API server port 3000 với endpoint /hello trả JSON {message: 'hi'}, viết test với supertest, chạy npm test"# Claude tự npm init, install express + supertest, viết code, chạy test

8. tmux: giữ session không bị mất khi SSH disconnect

Vấn đề: SSH disconnect (wifi rớt, đóng laptop) thì Claude Code đang chạy bị kill. Giải pháp: tmux - terminal multiplexer.

Terminal8. tmux: giữ session không bị mất khi SSH disconnectbash
sudo apt install -y tmux # Tạo session mới tên 'claude'tmux new -s claude # Trong tmux, chạy claudecd ~/projects/myappclaude # Detach: Ctrl+B rồi D# Reattach từ SSH session mớitmux attach -t claude # Liệt kê sessiontmux ls# Kill sessiontmux kill-session -t claude

Mình có 3 session tmux cố định: (Claude Code chính), dev (terminal chạy npm/git), logs (tail logs). Mỗi lần SSH vào VPS chỉ cần là quay lại trạng thái cũ.

9. Vibe code từ mobile qua Termius/Tabby

  • Termius (Android/iOS): free tier đủ dùng cá nhân, sync key giữa thiết bị.
  • Tabby (Android): open source, UI hiện đại hơn.
  • Cấu hình SSH key: generate trên VPS user dev, import private key vào app mobile.
  • Mở tmux session claude, gõ prompt từ on-screen keyboard hoặc Bluetooth keyboard.
  • Mẹo: bật "haptic feedback" và tăng font 16-18px cho dễ đọc.

Mình đã code Next.js prototype trên Pixel 8 + Logitech keys K580 trong quán cà phê, latency 250ms vẫn mượt. Tương lai của vibe coding là mobile + cloud + AI.

10. Tạo file CLAUDE.md cho project

CLAUDE.md là file Claude Code tự đọc đầu mỗi session, giúp agent hiểu rules của project. Tương đương .cursorrules.

Terminal10. Tạo file CLAUDE.md cho projectbash
# Tạo CLAUDE.md trong root projectcat > CLAUDE.md << "RULES"# Project rules ## Stack- Next.js 15 App Router, TypeScript strict- Prisma + Postgres- TailwindCSS + shadcn/ui ## Conventions- File naming kebab-case- Components PascalCase- Server Actions trong app/actions/ ## Don't- Don't commit secrets- Don't bypass type errors with anyRULES

Lưu ý: file CLAUDE.md không có heredoc trong bash code block (mình dùng quote khác). Tạo file lần đầu bằng nano nếu khó, sau đó Claude sẽ tự update khi bạn yêu cầu.

11. Gắn MCP server đầu tiên

MCP (Model Context Protocol) mở rộng Claude Code với tool ngoài (Filesystem, DB, browser, GitHub). Cài MCP Filesystem để Claude đọc file ngoài CWD:

Terminal11. Gắn MCP server đầu tiênbash
# Cài MCP server filesystemnpm install -g @modelcontextprotocol/server-filesystem # Đăng ký với Claude Codeclaude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /home/dev/projects # Liệt kê MCP đã cóclaude mcp list # Trong session claude, dùng tool# Prompt: "Liệt kê file trong /home/dev/projects"

MCP popular khác: @modelcontextprotocol/server-postgres (query DB), @modelcontextprotocol/server-puppeteer (browser automation), @modelcontextprotocol/server-github (gh API).

12. Troubleshoot lỗi thường gặp

  • "npm ERR! code EACCES": đổi npm prefix sang ~/.npm-global như bước 5.
  • "Login failed, code expired": URL token chỉ valid 5 phút. Chạy rồi login lại.
  • "Context length exceeded": dùng /clear để reset context, hoặc /compact để giữ summary.
  • "Rate limit reached": đợi 5 phút, hoặc upgrade subscription, hoặc switch sang API key billing riêng.
  • Permission denied khi sửa file: chmod 755 thư mục project, hoặc chown dev:dev -R.
  • Out of memory khi build: bật swap 4GB trên VPS 2GB: fallocate -l 4G /swap; chmod 600 /swap; mkswap /swap; swapon /swap.

FAQ

VPS 1GB RAM có chạy Claude Code được không?

Chạy được nhưng có giới hạn. Node.js + Claude idle ~400-500MB. Khi build project Next.js có thể peak 800MB-1GB, dễ OOM. Khuyến nghị bật swap 2-4GB nếu phải dùng VPS 1GB. Nên VPS 2GB để chạy thoải mái cả Claude + npm install + DB local.

Subscription Pro 20$ có dùng được trên VPS không?

Có. Login qua browser laptop, paste token vào terminal VPS. Token lưu trong ~/.claude/credentials.json, valid 30 ngày. Sau đó refresh tự động khi gọi API. Một subscription dùng được trên nhiều thiết bị nhưng cùng tài khoản claude.ai, không share giữa users.

Có cần root để cài Claude Code không?

Không bắt buộc. Cài npm với prefix ~/.npm-global (user thường) là đủ. Khuyến nghị KHÔNG dùng root vì agent có thể chạy shell command, root quyền cao có thể vô tình xoá hệ thống. Luôn tạo user dev có sudo password, login bằng user đó.

Latency từ VN tới Anthropic API như thế nào?

VPS TND HCM tới Anthropic us-east-1 trung bình 200-230ms. First token thường 500-800ms (Sonnet 4.7). Stream sau đó mượt ~50ms/token. Đủ tốt cho vibe coding, hơi chậm cho autocomplete inline. Nếu cần latency thấp hơn, cân nhắc VPS region Asia (Tokyo/Singapore) - giảm còn 150ms nhưng đắt hơn.

Có thể chạy Claude Code song song với Aider trên cùng VPS?

Hoàn toàn được. Mỗi tool tách tmux session riêng. Khuyến nghị: mỗi session chỉ làm việc với 1 repo Git khác nhau (hoặc 1 branch khác), tránh xung đột edit cùng file. Cài cả hai trên VPS 4GB chạy đồng thời thoải mái, không tăng đáng kể RAM idle.

Làm thế nào để Claude Code không xoá nhầm file?

Mặc định Claude Code hỏi confirm trước mọi destructive command (rm, git reset, drop table). Đừng dùng flag trừ khi sandbox. Quy tắc: luôn git commit trước khi chạy task lớn để có thể revert. Pre-commit hook chạy lint giúp catch lỗi sớm.

Chia sẻ:Facebook

Thanh Nguyễn

TND

Tư vấn bản quyền, VPS và máy chủ kèm hóa đơn VAT, hợp đồng đầy đủ cho doanh nghiệp.