نصب Agent Zero روی VPS و امنیت Web UI
آموزش نصب Agent Zero روی VPS و جلوگیری از دسترسی عمومی به پورت 50001. یاد بگیرید چگونه با محدود کردن دسترسی به Web UI، امنیت سیستم خود را حفظ کنید.
Agent Zero چیست و خطر کجاست
Agent Zero یک فریمورک عامل (agent) متنباز است که اولویت اصلی آن Docker است. یک عامل اصلی میتواند عاملهای زیرمجموعه ایجاد کند؛ هر یک از این عاملها در یک Docker container مجزا اجرا میشوند و هر کدام قادر به اجرای کد، کنترل مرورگر و اجرای دستورات shell هستند. شما تمام این فرآیند را از طریق یک Web UI کنترل میکنید. این فریمورک بسیار کارآمد و استفاده از آن لذتبخش است و روی سختافزارهای بسیار کوچک مانند یک VPS با قیمت 6 دلار نیز اجرا میشود.
خطر اصلی در Web UI نهفته است. این رابط کاربری، پنل کنترل سیستمی است که دستورات را اجرا و فایلها را مینویسد؛ بنابراین یک Web UI که بدون احراز هویت در دسترس باشد، دقیقاً یک نقطه ورود از راه دور برای مهاجم است. اکثر راهنماهای نصب، شما را مستقیماً به این تله میکشند: دستور استاندارد docker run رابط کاربری را روی پورت 50001 روی تمام interfaceهای شبکه منتشر میکند. این یعنی در یک VPS عمومی، به محض شروع به کار container، این رابط از کل اینترنت قابل دسترسی خواهد بود. رفع این مشکل اولین کاری است که باید انجام دهید، نه آخرین کار.
آنچه نیاز دارید
شما به یک VPS که Docker روی آن نصب شده باشد، یک API key برای یک مدل زبانی (یا یک مدل محلی برای اتصال به آن) و در ابتدا چند گیگابایت RAM نیاز دارید. Agent Zero در هر جایی که Docker اجرا شود، از یک VPS کوچک گرفته تا یک سرور GPU، قابل اجراست. اگر با Docker آشنایی ندارید، راهنمای اصول اولیه Docker مفاهیمی را که دستورات زیر بر پایه آنها هستند، پوشش میدهد.
نصب با Docker و محدود کردن به loopback
روش شروع سریع مستند شده، یک دستور docker run است. تفاوت مهم نسبت به نسخههای کپی-پیست شده در سایتهای دیگر، آدرسی است که منتشر میکنید. آدرس را روی تمام interfaceها در پورت 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 tunnel از سیستم خودتان به آن متصل شوید:
ssh -L 5080:127.0.0.1:5080 you@your-vpsسپس http://127.0.0.1:5080 را به صورت محلی باز کنید و تامینکننده مدل خود را در UI پیکربندی کنید. برای یک تنظیمات دائمی و چندکاربره، به جای آن از یک VPN یا یک reverse proxy با قابلیت احراز هویت استفاده کنید، اما هرگز رابط کاربری خام را در اینترنت باز نگذارید.
جایی که سایر راهنماها متوقف میشوند و چرا نباید این کار را بکنید
اگر به دنبال نحوه نصب Agent Zero بگردید، راهنماهای زیادی پیدا خواهید کرد، از جمله راهنماهای شرکتهای هاستینگ، که شما را تا رسیدن به یک Web UI در حال اجرا روی پورت 50001 پیش میبرند و در همانجا متوقف میشوند. خطر دقیقاً از همانجا شروع میشود، نه از آنجا که تمام میشود. دو مورد کار را تکمیل میکنند: اول، همانطور که گفته شد رابط کاربری را خصوصی نگه دارید. دوم، یک فایروال با سیاست default-deny (رد کردن پیشفرض) جلوی سیستم قرار دهید تا یک container سرگردان یا یک اشتباه در آینده، پورت فراموششدهای را در معرض خطر قرار ندهد:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enableبرای درک کامل، اصول فایروال را دنبال کنید و مراقب شکاف IPv6 باشید، زیرا سرویسی که روی :: اجرا میشود، حتی اگر قوانین IPv4 شما بسیار سختگیرانه باشد، از طریق IPv6 قابل دسترسی است.
جداسازی container از عاملها محافظت میکند، نه از سرور شما
طراحی Agent Zero در یک نوع جداسازی بسیار خوب عمل میکند: عاملهای زیرمجموعه در containerهای مجزا اجرا میشوند، بنابراین از یکدیگر جدا هستند. این ویژگی ارزشمند است. اما ممکن است این موضوع را به این معنا برداشت کنید که "چون محیط ایزوله است، پس من در امان هستم" و کار را تمام بدانید. جداسازی container از عاملها در برابر یکدیگر محافظت میکند. این کار هیچ تأثیری در محافظت از سرور شما در برابر اینترنت یا جلوگیری از تحویل کنترل سیستم به یک غریبه توسط یک Web UI باز ندارد. این وظیفه شما در سطح host است.
اسرار، کاربران و host
API key مدل و هر اعتبارنامه دیگری را در فایل config یا یک فایل محیطی (environment file) که فقط کاربر مجاز بتواند آن را بخواند، نگه دارید؛ این اطلاعات نباید در تاریخچه shell یا در هیچ مخزنی (repository) باشد. طبق اصول کاربران با کمترین امتیاز، از یک کاربر بدون دسترسی root برای مدیریت سرور استفاده کنید و طبق سختسازی SSH، دسترسی SSH را فقط به authentication با کلید محدود کنید. سپس چکلیست زیر را بررسی کنید تا چیزی از قلم نیفتد:
اگر در حال مقایسه عاملها هستید، این همان رویکرد امنیتی است که راهنمای سختسازی OpenClaw و راهنمای OpenHands اتخاذ میکنند: سطح کنترل را خصوصی نگه دارید، با کاربر بدون امتیاز اجرا کنید، به صورت پیشفرض فایروال بگذارید و با host به عنوان سیستمی که کدی را که خودش ننوشته اجرا میکند، برخورد کنید. برای مشاهده مقایسهای از هر پنج عامل، به بهترین عاملهای هوش مصنوعی self-hosted در سال 2026 مراجعه کنید.
مفاهیم زیربنایی هر یک از این موارد در ساخت عامل هوش مصنوعی شخصی در یک VPS توضیح داده شده است و Dify نیز پلتفرم self-host دیگری است که ارزش مقایسه دارد.
FAQ
آیا میزبانی شخصی (self-host) Agent Zero ایمن است؟
اگر رابط کاربری Web UI را خصوصی نگه دارید و host را سختسازی کنید، بله. Agent Zero کد، مرورگر و یک shell را اجرا میکند و از طریق یک Web UI که به طور پیشفرض روی پورت 50001 منتشر شده کنترل میشود؛ بنابراین خطر اصلی، در دسترس بودن رابط کاربری است، نه خودِ فریمورک. رابط کاربری را به loopback محدود کنید و از طریق SSH یا VPN به آن دسترسی پیدا کنید، یک فایروال با سیاست default-deny قرار دهید و آن را با یک کاربر بدون امتیاز اجرا کنید.
آیا Agent Zero به طور پیشفرض یک Web UI را در اینترنت منتشر میکند؟
دستور استاندارد docker run رابط کاربری را روی پورت 50001 روی تمام interfaceهای شبکه منتشر میکند، که در یک VPS عمومی به این معناست که به محض شروع به کار container، از طریق اینترنت قابل دسترسی است. آدرس منتشر شده را به 127.0.0.1 تغییر دهید تا رابط کاربری فقط روی loopback گوش دهد، سپس از طریق یک SSH tunnel یا VPN به آن متصل شوید.
آیا Agent Zero میتواند روی یک VPS کوچک اجرا شود؟
بله. Agent Zero در هر جایی که Docker اجرا شود، از جمله یک VPS کوچک و ارزانقیمت، قابل اجراست؛ هرچند وظایف سنگینتر و مدلهای محلی بزرگتر به حافظه بیشتری نیاز دارند. اگر به جای یک API آنلاین، از یک مدل self-hosted استفاده میکنید، اندازه سرور را بر اساس نیاز مدل انتخاب کنید، نه فقط بر اساس نیاز Agent Zero.
تفاوت Agent Zero با OpenClaw یا Hermes چیست؟
آنها همپوشانی دارند اما اهداف متفاوتی دارند. Agent Zero یک فریمورک با اولویت Docker است که حول یک عامل اصلی ساخته شده که عاملهای زیرمجموعه را در containerهای ایزوله ایجاد میکند و از طریق یک Web UI هدایت میشود. OpenClaw و Hermes دستیارهای شخصی هستند که از طریق اپلیکیشنهای چت با آنها در ارتباط هستید. رویکرد امنیتی برای همه آنها یکسان است: سطح کنترل را خصوصی نگه دارید و host را سختسازی کنید.