SSD Nodes Learn Hosting plans →
Hướng dẫn Matt ConnorBởi Matt Connor · Cập nhật ngày 2026-08-22

Tự host Agent Zero an toàn trên VPS

Agent Zero có thể chạy code, browser và shell từ Web UI. Hướng dẫn cài trên VPS, xử lý port 50001 và khóa Web UI để tránh expose ra Internet.

Agent Zero là gì và rủi ro nằm ở đâu

Agent Zero là một agent framework mã nguồn mở, ưu tiên Docker. Một agent chính có thể khởi chạy các agent phụ. Mỗi agent phụ chạy trong một Docker container riêng biệt và có thể thực thi code, điều khiển browser và chạy shell command. Bạn điều khiển toàn bộ hệ thống từ Web UI. Công cụ này có nhiều khả năng và thực sự dễ dùng. Nó có thể chạy trên phần cứng nhỏ như một VPS giá sáu đô la. Nếu bạn chỉ cần mô hình multi-agent thay vì cả framework, hai phiên Claude Code trên cùng một máy có thể nhắn tin trực tiếp cho nhau, và cách này nhẹ hơn nhiều để triển khai cũng như bảo mật.

Rủi ro nằm ở Web UI. Đây là control panel của một hệ thống có thể chạy command và ghi file. Vì vậy, Web UI bị expose và không yêu cầu xác thực sẽ trở thành foothold từ xa vào chính hệ thống đó. Đây là cái bẫy mà hầu hết hướng dẫn cài đặt đều khiến bạn rơi vào: docker run mặc định publish interface trên port 50001 trên mọi network interface. Trên một VPS public, điều đó có nghĩa là interface có thể truy cập từ toàn bộ Internet ngay khi container khởi động. Bạn phải xử lý việc này đầu tiên, không phải để đến bước cuối.

Những gì bạn cần

Bạn cần một VPS đã cài Docker, API key cho một language model hoặc một local model để trỏ Agent Zero đến đó, cùng vài gigabyte RAM để bắt đầu. Agent Zero chạy được ở bất cứ nơi nào Docker chạy, từ VPS nhỏ đến server có GPU. Nếu Docker còn mới với bạn, hướng dẫn cơ bản về Docker giải thích các giả định của những lệnh bên dưới.

Cài đặt bằng Docker, chỉ bind vào loopback

Quick start được ghi trong tài liệu chỉ là một docker run. Thay đổi quan trọng so với phiên bản copy-paste bạn có thể tìm thấy ở nơi khác là địa chỉ được publish. Không publish trên mọi interface tại port 50001. Hãy publish trên loopback:

docker run -d --name agent-zero \
  -p 127.0.0.1:5080:80 \
  -v a0_usr:/a0/usr \
  agent0ai/agent-zero

-p 127.0.0.1:5080:80 chỉ bind Web UI vào địa chỉ loopback của server, nên UI không thể truy cập từ Internet. Truy cập UI từ máy của bạn qua SSH tunnel:

ssh -L 5080:127.0.0.1:5080 you@your-vps

Sau đó mở http://127.0.0.1:5080 ở máy local và cấu hình model provider trong UI. Với setup nhiều người dùng lâu dài, hãy đặt UI phía sau VPN hoặc reverse proxy có authentication. Tuyệt đối không publish UI thô ra Internet công cộng. Đây là thói quen nên áp dụng cho mọi tool khác trên máy có interface điều khiển chức năng nhạy cảm. open-kritt scanner tự host cũng nên được truy cập theo cách này, qua tunnel đến UI thay vì publish một port.

Các hướng dẫn khác dừng ở đâu, và vì sao bạn không nên dừng ở đó

Tìm cách cài đặt Agent Zero, bạn sẽ thấy rất nhiều hướng dẫn, trong đó có cả hướng dẫn từ các công ty hosting. Chúng hướng dẫn bạn chạy Web UI trên cổng 50001 rồi kết thúc. Đây chính xác là lúc rủi ro bắt đầu, không phải lúc rủi ro kết thúc. Cần làm thêm 2 việc. Thứ nhất, giữ UI ở chế độ private như phần trên. Thứ hai, đặt một firewall mặc định từ chối ở phía trước máy chủ, để một container bị cấu hình nhầm hoặc một sai sót trong tương lai không vô tình expose một cổng mà bạn quên mất:

sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enable

Đọc phần cơ bản về firewall để xem đầy đủ, và lưu ý khoảng trống IPv6, vì một service trên :: vẫn có thể truy cập qua IPv6 ngay cả khi các rule IPv4 của bạn có vẻ đã được siết chặt.

Container isolation bảo vệ các agent, không phải server của bạn

Thiết kế của Agent Zero thực sự tốt ở một dạng isolation: các agent con chạy trong những container riêng, nên chúng được tách biệt với nhau. Đây là một cơ chế đáng có. Nhưng rất dễ hiểu nhầm thành “nó đã được sandbox, vậy là tôi an toàn” rồi dừng ở đó. Container isolation bảo vệ các agent khỏi lẫn nhau. Nó không bảo vệ server của bạn khỏi Internet và cũng không ngăn Web UI bị exposed trao quyền điều khiển cho người lạ. Việc đó thuộc trách nhiệm của bạn trên host. Hãy quyết định trước agent được phép làm đến mức nào khi không có ai giám sát. Đây cũng là nguyên tắc đằng sau các permission mode của Claude Code, trong đó một server không có người giám sát phải dùng setting chặt hơn laptop đang ở trước mặt bạn.

Secrets, user và host

Lưu model API key và mọi credential khác trong config của Agent Zero hoặc một environment file mà chỉ đúng account mới đọc được. Không để chúng xuất hiện trong shell history hoặc trong bất kỳ repository nào. Cách làm tương tự áp dụng cho mọi thành phần khác trên máy chủ có nhiệm vụ bảo vệ secret. Ví dụ, hardening Vaultwarden tập trung vào admin token và backup file của nó, không phải cơ chế encryption mà app đã xử lý tốt. Quản trị máy chủ bằng một user không có đặc quyền thay vì root, theo nguyên tắc least privilege cho user, và chuyển SSH sang chỉ xác thực bằng key như trong hướng dẫn hardening SSH. Sau đó, kiểm tra checklist bên dưới để không bỏ sót mục nào.

ToolVPS hardening checklist

Nếu bạn đang so sánh các agent, đây cũng là security posture của hướng dẫn hardening OpenClawhướng dẫn OpenHands: giữ control surface ở chế độ private, chạy bằng user không có đặc quyền, mặc định bật firewall và xem host là máy chạy code mà bạn không viết. Để xem so sánh song song cả 5 agent, hãy xem các AI agent self-host tốt nhất năm 2026.

Các khái niệm nền tảng cho mọi lựa chọn trên được trình bày trong hướng dẫn tự xây dựng AI agent trên VPS, còn Dify là một nền tảng self-host khác đáng để so sánh.

FAQ

Agent Zero có an toàn khi self-host không?

Có, nếu bạn giữ Web UI ở chế độ private và harden host. Agent Zero chạy code, browser và shell. Nó được điều khiển từ Web UI, mặc định được publish trên port 50001. Vì vậy, rủi ro nằm ở interface bị expose, không phải ở bản thân framework. Bind UI vào loopback và truy cập qua SSH hoặc VPN. Đặt firewall với chính sách mặc định deny ở phía trước. Chạy Agent Zero bằng user không có quyền đặc biệt.

Agent Zero có mặc định expose Web UI ra Internet không?

docker run tiêu chuẩn publish interface trên port 50001 qua mọi network interface. Trên một VPS public, điều này có nghĩa là interface có thể truy cập từ Internet ngay khi container khởi động. Đổi địa chỉ publish thành 127.0.0.1 để UI chỉ listen trên loopback. Sau đó truy cập qua SSH tunnel hoặc VPN.

Agent Zero có chạy được trên VPS nhỏ không?

Có. Agent Zero chạy ở bất kỳ nơi nào Docker chạy được, kể cả VPS nhỏ, chi phí thấp. Tuy nhiên, các task nặng và local model lớn cần nhiều memory hơn. Nếu trỏ Agent Zero đến model tự host thay vì hosted API, hãy chọn cấu hình máy dựa trên yêu cầu của model, không chỉ dựa trên yêu cầu của Agent Zero.

Agent Zero khác OpenClaw hoặc Hermes như thế nào?

Các công cụ này có phần chức năng trùng nhau nhưng hướng đến các mục tiêu khác nhau. Agent Zero là framework theo hướng Docker-first, xoay quanh một primary agent có thể tạo subordinate agent trong các container riêng biệt, và được điều khiển từ Web UI. OpenClaw và Hermes là các personal assistant mà bạn truy cập qua chat app. Security posture của cả ba tương tự nhau: giữ control surface ở chế độ private và harden host.