SSD Nodes Learn
ガイド Matt Connor著者 Matt Connor ・更新日 2026-07-24

Agent ZeroをVPSにセルフホストする方法とセキュリティ対策

Agent ZeroをVPSで運用する際の安全な構築手順を解説します。port 50001を全インターフェースに公開すると、外部から直接操作される危険があります。Dockerを使い、loopbackにバインドしてSSHトンネル経由でアクセスする、最も安全なセットアップ方法を紹介します。

Agent Zeroの概要と潜在的なリスク

Agent Zeroは、Dockerを前提としたオープンソースのエージェントフレームワークです。メインエージェントは、それぞれが独立したDockerコンテナ内で動作するサブエージェントを生成できます。各エージェントは、コードの実行、ブラウザの操作、およびshellコマンドの実行が可能です。これらすべてをWeb UIから制御できます。非常に高性能で使い勝手が良く、6ドルのVPSのような小規模なハードウェアでも動作します。

リスクはWeb UIにあります。このシステムはコマンドを実行し、ファイルを書き込むためのコントロールパネルであるため、認証なしで公開されたWeb UIは、そのままリモートからの侵入経路になります。多くのセットアップガイドには、ここに陥る罠があります。標準のdocker runは、すべてのネットワークインターフェースのport 50001でインターフェースを公開します。パブリックなVPSの場合、コンテナが起動した瞬間にインターネット全体からアクセス可能になります。これを修正することは、最後にすべきことではなく、最初にすべきことです。

必要なもの

DockerがインストールされたVPS、LLM用のAPIキー(またはローカルモデル)、および最低2GBのRAMが必要です。Agent Zeroは、小規模なVPSからGPUサーバーまで、Dockerが動作する環境であればどこでも動作します。Dockerが初めての場合は、Dockerの基本ガイドで、以下のコマンドの前提条件を確認してください。

Dockerを使用し、loopbackにバインドしてインストールする

公式のクイックスタートは単一のdocker runです。他の場所にあるコピー&ペースト用の手順との重要な違いは、公開するアドレスです。port 50001ですべてのインターフェースに公開しないでください。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トンネル経由でアクセスしてください。

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

その後、ローカルでhttp://127.0.0.1:5080を開き、UIでモデルプロバイダーを設定してください。永続的なマルチユーザー環境を構築する場合は、VPNまたは認証機能付きのリバースプロキシの背後に配置してください。生のUIをインターネットに公開してはいけません。

他のガイドの不足点と、推奨されない設定

Agent Zeroのインストール方法を検索すると、port 50001で動作するWeb UIを起動して終了してしまうガイド(ホスティング会社のものを含む)が多く見つかります。リスクが始まるのはそこからであり、そこがゴールではありません。作業を完了するには2つのステップが必要です。第一に、上記のようにUIをプライベートに保つこと。第二に、予期せぬコンテナや将来のミスによって、忘れていたポートが公開されないよう、サーバーの前に「デフォルト拒否」のファイアウォールを設置することです。

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

詳細についてはファイアウォールの基本を参照してください。また、::上のサービスは、IPv4のルールが厳格であってもIPv6経由でアクセス可能になるため、IPv6のギャップに注意してください。

コンテナの分離はエージェントを保護するが、サーバーは保護しない

Agent Zeroの設計は、ある種の分離に関しては非常に優れています。サブエージェントは個別のコンテナで動作するため、互いに隔離されています。これは重要な機能です。しかし、これを「サンドボックス化されているから安全だ」と誤解して、そこで思考を止めてはいけません。コンテナの分離は、エージェント同士を保護するものです。サーバーをインターネットから保護したり、公開されたWeb UIが第三者に制御権を渡すのを防いだりするものではありません。それらはホスト側で行うべき、あなたの責任です。

シークレット、ユーザー、およびホスト

モデルのAPIキーやその他の認証情報は、Agent Zeroのconfigまたは適切なアカウントのみが読み取れる環境変数ファイルに保存し、shellの履歴やリポジトリには残さないでください。最小権限のユーザーに従い、rootではなく権限のないユーザーとしてサーバーを管理してください。また、SSHの要塞化に従い、SSHを鍵認証のみに設定してください。その後、以下のチェックリストを実行して、漏れがないようにしてください。

ToolVPS hardening checklist

エージェントを比較している場合、これはOpenClawの要塞化ガイドおよびOpenHandsのガイドが採用しているセキュリティ方針と同じです。すなわち、コントロールサーフェスをプライベートに保ち、権限のないユーザーで実行し、デフォルトでファイアウォールを適用し、ホストを「自身が書いたのではないコードを実行する環境」として扱うことです。5つのエージェントの比較については、2026年における最高のセルフホスト型AIエージェントを参照してください。

これらの基礎となる概念についてはVPSでの自作AIエージェントの構築に記載されています。また、比較対象としてDifyも検討に値するセルフホスト可能なプラットフォームです。

FAQ

Agent Zeroのセルフホストは安全ですか?

Web UIをプライベートに保ち、ホストを要塞化していれば安全です。Agent Zeroはコード、ブラウザ、およびshellを実行します。デフォルトではport 50001で公開されるWeb UIから制御されるため、リスクはフレームワーク自体ではなく、公開されたインターフェースにあります。UIをloopbackにバインドし、SSHまたはVPN経由でアクセスし、デフォルト拒否のファイアウォールを設置し、権限のないユーザーで実行してください。

Agent ZeroはデフォルトでWeb UIをインターネットに公開しますか?

標準のdocker runは、すべてのネットワークインターフェースのport 50001でインターフェースを公開します。パブリックなVPSの場合、コンテナが起動するとすぐにインターネットからアクセス可能になります。公開アドレスを127.0.0.1に変更して、UIがloopbackのみで待機するようにし、SSHトンネルまたはVPN経由でアクセスしてください。

Agent Zeroは小規模なVPSで動作しますか?

はい。Agent Zeroは、安価な小規模VPSを含む、Dockerが動作する環境であればどこでも動作します。ただし、重いタスクや大規模なローカルモデルを使用する場合は、より多くのメモリが必要です。APIではなくセルフホストのモデルを使用する場合は、Agent Zeroだけでなく、モデルのサイズに合わせてサーバーのスペックを決定してください。

Agent ZeroはOpenClawやHermesと何が違いますか?

機能は重複していますが、目的が異なります。Agent Zeroは、Web UIから操作され、隔離されたコンテナ内でサブエージェントを生成するメインエージェントを中心とした、Dockerファーストのフレームワークです。OpenClawやHermesは、チャットアプリを通じて利用するパーソナルアシスタントです。セキュリティ方針はすべて共通しています。コントロールサーフェスをプライベートに保ち、ホストを要塞化してください。