Agent Zero VPS 自架與 Web UI 安全設定
Agent Zero 的 Web UI 可執行程式碼、瀏覽器與 shell 命令。本文以 Docker 部署至 VPS,說明 80、5080、50080 與 50001 埠的風險,並用 127.0.0.1 綁定介面。
Agent Zero 是什麼,以及風險所在
Agent Zero 是以 Docker 為優先的開放原始碼代理程式框架。主要代理程式可以啟動下屬代理程式,將工作拆分成多個明確的部分。這些代理程式可以執行程式碼、操作瀏覽器及執行 shell 命令,而且都在 Agent Zero Docker 容器內完成。您可以透過 Web UI 控制整個系統。它功能完整,也確實容易上手,最低只需六美元的 VPS 硬體即可執行。如果您需要的是多代理程式架構,而不是這個框架,也可以讓同一台主機上的兩個 Claude Code 工作階段直接互傳訊息;這種方式需要執行及保護的元件少得多。
風險在於 Web UI。它是控制一個能執行命令及寫入檔案之系統的控制面板,因此,對外公開且未經驗證的 Web UI,等同於提供遠端進入該系統的立足點。多數設定指南會直接引導您落入以下陷阱:docker run 範例發布介面時未指定繫結位址。截至 2026-10-12,README 中的直接命令會將主機的 80 埠映射到(-p 80:80),A0 Install 啟動程式使用 5080 埠,VPS 部署指南建議使用 50080 埠,而針對 v0.9.x 系列以前版本撰寫的指南則使用 50001 埠。無論選擇哪個埠,未指定位址的映射都會在所有網路介面上監聽;在公開 VPS 上,這表示容器一啟動,就能從整個網際網路連入。修正這項設定應該是您首先要做的事,而不是最後才處理。
需要準備的項目
你需要一台已安裝 Docker 的 VPS、一組語言模型 API key,或可供 Agent Zero 使用的本機模型,並準備至少幾 GB 的 RAM。Agent Zero 可在任何能執行 Docker 的環境中運作,從小型 VPS 到 GPU server 都可以。如果你不熟悉 Docker,Docker 基礎指南會說明下方命令所需的基本概念。
使用 Docker 安裝並綁定至 loopback
文件中的快速入門只需一個 docker run。與其他地方常見的複製貼上版本相比,重要差異在於發布的繫結位址。不要像 -p 80:80 那樣發布至所有介面。請發布至 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 僅將 Web UI 綁定至伺服器的 loopback 位址,因此無法從網際網路連線。請透過 SSH tunnel 從自己的電腦存取:
ssh -L 5080:127.0.0.1:5080 you@your-vps接著在本機開啟 http://127.0.0.1:5080,在 UI 中設定模型提供者,並在 Settings、Authentication 下設定 UI 登入帳號與密碼。官方文件表示,將該執行個體開放給其他人使用前,應先完成這項設定。若要建立永久的多使用者環境,請改用 VPN 或需要驗證的反向代理保護它,但絕不要將原始 UI 發布至公開網際網路。對於伺服器上其他介面可控制敏感功能的工具,也應遵循相同做法;例如 自架的開源 kritt 掃描器 也應透過通往其 UI 的 tunnel 存取,而不是發布連接埠。
其他指南止步之處,以及你不應止步於此
搜尋如何安裝 Agent Zero 時,你會找到許多指南,包括託管業者提供的指南。這些指南會引導你在公開連接埠上啟動 Web UI(較早版本使用 50001,較新的版本則使用 80、5080 或 50080),然後就此結束。風險正是從這裡開始,而不是在這裡結束。要完成這項工作,還有兩件事。第一,如上所述,讓 UI 保持私有。第二,在主機前方設定預設拒絕的防火牆,避免你遺忘的服務回應網際網路上的連線:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enable但請了解它的限制:Docker 會在 UFW 套用規則前,先替已公開的容器連接埠路由流量。因此,防火牆無法涵蓋已公開至所有介面的容器連接埠。這就是上述繫結至 loopback 的設定很重要的原因,而 Docker 連接埠如何繞過 UFW 會詳細說明其中原理。請參閱 防火牆基礎 了解完整概念,並留意 IPv6 缺口,因為即使你的 IPv4 規則看似嚴格,:: 上的服務仍可透過 IPv6 存取。
容器隔離保護的是代理程式,不是你的伺服器
Agent Zero 的設計確實妥善處理了一種隔離:框架及其啟動的每個代理程式都在 Docker 容器內執行,不會直接執行於主機上。因此,它們撰寫及執行的程式碼會落在容器內,而不是你的家目錄。這項隔離值得保留。從屬代理程式會與主要代理程式共用同一個容器,因此隔離邊界位於代理程式與主機之間,而不是代理程式彼此之間。讀完這些內容,很容易將其理解成「既然有 sandbox,我就安全了」,然後就此停下。
容器隔離會讓代理程式的工作留在主機之外,但不會保護你的伺服器免受網際網路攻擊,也不會阻止暴露在外的 Web UI 將控制權交給陌生人。這些防護工作必須由你在主機上處理。請預先決定,在沒有人監看時,代理程式最多可以執行哪些操作。這與 Claude Code 的權限模式背後的判斷相同:無人看管的伺服器,應採用比放在你面前的筆記型電腦更嚴格的設定。
Secrets、使用者與主機
將 model API key 和其他憑證存放在 Agent Zero 的設定檔或環境檔中,並確保只有正確的帳號能讀取。不要讓這些內容出現在 shell 歷程記錄或任何 repository 中。相同原則也適用於主機上其他用來保護 secrets 的元件,因為 Vaultwarden 強化設定的重點在於 admin token 與備份檔案,而不是該應用程式已經妥善處理的加密功能。請依照 最小權限使用者的原則,以非特權使用者而非 root 管理主機,並依照 SSH 強化設定改用僅限金鑰的驗證方式。接著逐項檢查下方清單,避免遺漏任何項目。
如果你正在比較不同的 agents,OpenClaw 強化指南與OpenHands 指南採用的是相同的安全姿態:將控制介面維持在私有網路中,以非特權使用者執行,預設啟用防火牆,並將主機視為會執行非自己撰寫程式碼的環境。如需並列比較全部五個 agents,請參閱2026 年最佳自架 AI agents。
這些概念的基礎內容可參閱在 VPS 上建立自己的 AI agent;Dify也是值得比較的另一個可自行託管平台。
FAQ
Agent Zero 自行代管安全嗎?
只要將其 Web UI 維持私有並強化主機安全,就能安全使用。Agent Zero 會執行程式碼、瀏覽器與 shell,並透過發布到主機的連接埠提供 Web UI 控制,因此風險來自介面暴露,而不是框架本身。請將 UI 綁定至 loopback,透過 SSH 或 VPN 存取;設定 UI 登入帳號與密碼;在前方設定預設拒絕的防火牆;並以非特權使用者執行。
Agent Zero 預設會將 Web UI 暴露至網際網路嗎?
文件中的 docker run 指令會在未指定位址的情況下發布介面(README 使用 -p 80:80)。這類對映會在所有網路介面上監聽,因此在公開 VPS 上,容器一啟動就能從網際網路連線。UFW 無法阻止這種連線,因為 Docker 會繞過 UFW 路由已發布的連接埠。請在發布位址中加入 127.0.0.1,讓 UI 僅在 loopback 上監聽,再透過 SSH 通道或 VPN 存取。
Agent Zero 能在小型 VPS 上執行嗎?
可以。Agent Zero 能在 Docker 可執行的環境中運作,包括小型且價格低廉的 VPS,但較複雜的工作與較大型的本機模型需要更多記憶體。若要使用自行代管的模型,而不是代管式 API,請依模型需求配置主機,而不只是依 Agent Zero 的需求配置。
Agent Zero 與 OpenClaw 或 Hermes 有何不同?
三者功能有所重疊,但定位不同。Agent Zero 是以 Docker 為優先的框架,以主要代理程式為核心,在其容器內啟動從屬代理程式,並透過 Web UI 操作。OpenClaw 與 Hermes 則是透過聊天應用程式存取的個人助理。三者的安全原則相同:維持控制介面私有,並強化主機安全。