Claude Code là gì? Cách chạy Claude Code 24/7 trên VPS không cần để máy bật

Mục lục

Bạn cài Claude Code trên laptop, giao cho nó refactor cả module rồi đi ngủ. Sáng dậy mở máy lên thì WiFi rớt từ lúc nào, session chết, agent dừng giữa chừng. Nghe quen không? Bài này giải thích Claude Code là gì và cách dời nó lên VPS để chạy 24/7, không cần để máy bật cả đêm.

Claude Code là gì?

Claude Code là CLI agent code của Anthropic - cái tên đầy đủ là tool agentic chạy thẳng trong terminal. Khác với việc bạn copy-paste code qua lại trên web chat, Claude Code sống ngay trong thư mục dự án của bạn: nó đọc được toàn bộ codebase, tự chạy lệnh shell, sửa file, chạy test, commit git, tất cả qua ngôn ngữ tự nhiên. Bạn gõ "fix cái bug ở auth.py rồi chạy test lại", nó tự làm cả chuỗi việc đó.

Điểm mấu chốt để hiểu đúng: Claude Code là một process Node.js chạy trên máy bạn. Model (Opus 4.7, context 1M token) thì nằm trên server Anthropic, nhưng cái terminal agent - cái thực sự đọc file, gõ lệnh `npm install`, sửa code của bạn - chạy local. Tức là nó cần một máy đang bật, có internet, để làm việc.

💡 Mẹo: Hiểu được "model trên cloud, agent chạy local" là chìa khóa. Đó chính là lý do vì sao dời agent lên VPS lại hợp lý - bạn chỉ cần một máy local nhỏ, luôn bật, có mạng ổn định. Đúng định nghĩa của một con VPS.

Claude Code hoạt động thế nào (agentic loop)

Để biết vì sao nó cần máy bật liên tục, cần hiểu nó làm việc theo vòng lặp:

  1. Bạn ra yêu cầu (prompt).
  2. Model suy nghĩ, quyết định cần đọc file nào, chạy lệnh gì.
  3. Agent local thực thi lệnh đó trên máy bạn (đọc file, chạy bash, sửa code).
  4. Kết quả gửi ngược lên model, model nghĩ tiếp, ra lệnh tiếp.
  5. Lặp lại cho tới khi xong việc.

Một task lớn như "viết test cho toàn bộ service và sửa các lỗi phát sinh" có thể lặp vòng này hàng chục, hàng trăm lần, kéo dài 20-40 phút. Suốt thời gian đó máy phải bật, terminal phải mở, mạng phải thông. Đứt một mắt xích là agent dừng.

Vì sao chạy trên VPS ăn đứt laptop

Đây là vấn đề thật của dân code với AI agent: bạn không thể ngồi canh màn hình suốt khi agent làm task dài. Mà laptop thì không sinh ra để chạy nền 24/7.

Vấn đề Laptop của bạn VPS
Chạy task qua đêm Máy sleep, agent chết Bật liên tục, agent chạy tới sáng
Rớt WiFi giữa chừng SSH/terminal đứt, session mất tmux giữ session, kết nối lại là thấy
Tốc độ mạng tới API Phụ thuộc WiFi nhà Datacenter, băng thông ổn định
Đóng máy đi cafe Phải để máy bật ở nhà Đóng laptop thoải mái, agent vẫn chạy
Chạy nhiều agent song song Quạt kêu, máy nóng Mỗi window một agent, mát rượi

Mô hình lý tưởng: laptop chỉ là cái "màn hình điều khiển". Agent thật chạy trên VPS. Bạn SSH vào ra lệnh, detach, đóng máy. Agent vẫn cày. Mai mở máy SSH lại, xem kết quả. Đây là pattern mà nhiều dev đang dùng để thay cho việc mua một con Mac Mini chỉ để chạy agent.

Setup Claude Code trên VPS Ubuntu từng bước

Phần này làm trên một con VPS Ubuntu 22.04/24.04 sạch. Cấu hình nhẹ là đủ vì agent không ăn nhiều CPU/RAM (model chạy trên cloud mà), 1-2 vCPU với 2GB RAM là chạy mượt cho hầu hết task. Nếu bạn build/compile project nặng thì lên 4GB.

Bước 1: SSH vào VPS và cập nhật hệ thống

ssh root@IP_VPS_CUA_BAN
apt update && apt upgrade -y

Bước 2: Cài Node.js (Claude Code cần Node 18+)

Dùng NodeSource để có bản LTS mới:

curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
apt install -y nodejs
node --version   # kiểm tra, nên là v20 trở lên

Bước 3: Tạo user thường (đừng chạy agent bằng root)

adduser coder
usermod -aG sudo coder
su - coder
⚠️ Lưu ý: Đừng cài và chạy Claude Code bằng user root. Agent này tự chạy lệnh shell - nếu nó chạy dưới quyền root mà có lệnh sai, hậu quả nặng hơn nhiều. Luôn tạo một user thường để giới hạn quyền.

Bước 4: Cài Claude Code

Cách qua npm (đơn giản, được hỗ trợ đầy đủ):

npm install -g @anthropic-ai/claude-code

Nếu gặp lỗi permission khi cài global bằng user thường, cấu hình npm dùng thư mục trong home thay vì sudo:

mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
npm install -g @anthropic-ai/claude-code
💡 Mẹo: Anthropic giờ cũng có native installer (không cần Node) và khuyên dùng nó để tự auto-update. Nhưng bản npm vẫn được hỗ trợ đầy đủ và quen thuộc với dân JS hơn. Chọn cái nào cũng được, đừng dùng `sudo npm install` là chính.

Bước 5: Đăng nhập

Lần đầu chạy `claude` trong thư mục dự án, nó sẽ mở luồng OAuth để kết nối tài khoản Anthropic của bạn:

cd ~/du-an-cua-ban
claude

Trên VPS không có trình duyệt, nó sẽ in ra một URL. Copy URL đó dán vào trình duyệt trên laptop, đăng nhập, copy mã trả về dán lại vào terminal. Xong là kết nối được tài khoản (Pro/Max) hoặc bạn có thể cấu hình API key qua biến môi trường `ANTHROPIC_API_KEY`.

tmux: giữ session sống khi SSH đứt

Đây là mảnh ghép quan trọng nhất. Nếu bạn chỉ SSH vào rồi chạy `claude`, khi SSH đứt (rớt mạng, đóng laptop) thì process bị kill theo. tmux giải quyết đúng vấn đề này: nó tạo một session terminal chạy trên VPS, độc lập với kết nối SSH của bạn.

Cài và tạo session

sudo apt install -y tmux
tmux new -s claude

Lệnh `tmux new -s claude` tạo một session tên "claude". Giờ bạn đang ở bên trong nó. Chạy agent như bình thường:

cd ~/du-an-cua-ban
claude

Giao task cho nó (ví dụ "viết unit test cho toàn bộ thư mục src/, sửa các lỗi phát sinh, chạy lại cho tới khi pass"). Khi agent đang cày, bạn muốn rời đi: nhấn Ctrl+B rồi thả ra, nhấn tiếp D (detach). Bạn quay về terminal SSH bình thường, nhưng session tmux vẫn chạy ngầm trên VPS cùng con agent bên trong.

Giờ bạn có thể gõ `exit` để thoát SSH, đóng laptop, đi ngủ. Agent vẫn chạy.

Quay lại xem kết quả

Sáng mai, SSH lại vào VPS rồi attach vào đúng session cũ:

ssh coder@IP_VPS_CUA_BAN
tmux attach -t claude

Bạn thấy lại đúng màn hình lúc rời đi, kèm toàn bộ output agent đã làm. Liệt kê các session đang chạy bằng `tmux ls`.

Verify: chứng minh nó sống sót khi SSH đứt

Đừng tin lý thuyết, hãy tự test. Đây là cách kiểm chứng nhanh:

# Trong session tmux, chạy một lệnh đếm số chạy nền lâu
tmux new -s test
while true; do date >> ~/proof.log; sleep 5; done

Detach (Ctrl+B rồi D), thoát SSH hẳn (`exit`), thậm chí ngắt WiFi laptop. Đợi vài phút rồi SSH lại:

cat ~/proof.log

Nếu thấy file vẫn ghi thêm dòng timestamp trong khoảng thời gian bạn ngắt kết nối, nghĩa là tiến trình bên trong tmux không hề bị ảnh hưởng bởi việc SSH đứt. Đó chính là điều giúp Claude Code chạy được qua đêm.

⚠️ Lưu ý: tmux giữ được process sống qua việc đứt SSH, nhưng nếu chính con VPS bị reboot thì session mất. Vì vậy đừng tự ý reboot VPS khi agent đang chạy task quan trọng. Với task siêu dài, cân nhắc cho agent commit/log tiến độ thường xuyên để không mất công nếu có sự cố.

Một vài thói quen nên có

Khi đã chạy agent trên VPS, vài thứ giúp bạn đỡ đau đầu về sau. Đặt API key qua biến môi trường thay vì gõ tay mỗi lần, đừng hardcode key vào file commit. Bật firewall (ufw) chỉ mở cổng SSH. Dùng SSH key thay password để login cho an toàn. Và nếu muốn đào sâu các pattern chạy nhiều agent song song, log output ra file, cấu hình SSH keep-alive thì tham khảo thêm hướng dẫn tổng hợp về VPS cho vibe coder của bên mình.

Cần VPS cấu hình nào?

Vì model chạy trên cloud, agent local nhẹ nhàng, nên bạn không cần VPS khủng. Mức tham khảo:

Nhu cầu Gói gợi ý Cấu hình
Chạy 1 agent, task nhẹ-vừa VPS 20 - 199k/tháng 1 vCPU / 1GB / 20GB
Chạy agent + build project, vài session VPS 50 - 639k/tháng 4 vCPU / 4GB / 50GB
Nhiều agent song song, compile nặng VPS 80 - 999k/tháng 6 vCPU / 6GB / 80GB

Tất cả đều dùng ổ Ceph SSD Enterprise NVMe, RAM ECC, sẵn 1 IPv4 + IPv6, khởi tạo trong 60 giây nên bạn cài đặt được ngay trong vài phút.

Cho Claude Code một ngôi nhà chạy 24/7

Đừng để laptop phải bật cả đêm chỉ để giữ agent sống. Dời nó lên VPS TND, đóng máy đi ngủ, sáng mai xem kết quả. Khởi tạo 60 giây, SSD NVMe, có IPv6, giá từ 199k/tháng.

Xem bảng giá VPS

Chia sẻ bài viết