SSD Nodes Learn Hosting plans →
คู่มือ Matt Connorโดย Matt Connor

วิธีติดตั้ง Agent Zero บน VPS ให้ปลอดภัยและใช้งานได้จริง

เรียนรู้วิธีติดตั้ง Agent Zero บน VPS อย่างปลอดภัยเพื่อป้องกันการเข้าถึง Web UI โดยไม่ได้รับอนุญาต พร้อมคำแนะนำการตั้งค่าพอร์ตและ Docker ให้รัดกุมเพื่อลดความเสี่ยงจากการรันคำสั่ง Shell

Agent Zero คืออะไรและมีความเสี่ยงตรงไหน

Agent Zero เป็นเฟรมเวิร์กสำหรับ AI agent แบบโอเพนซอร์สที่เน้นการทำงานบน Docker โดย agent หลักสามารถสร้าง agent ย่อยเพื่อแบ่งงานออกเป็นส่วนๆ ได้ และ agent เหล่านี้สามารถรันโค้ด สั่งงานเบราว์เซอร์ และรันคำสั่ง shell ได้ทั้งหมดภายในคอนเทนเนอร์ Docker ของ Agent Zero คุณสามารถควบคุมทุกอย่างได้ผ่าน Web UI ซึ่งมีความสามารถสูงและใช้งานได้สนุกจริง อีกทั้งยังรันบนฮาร์ดแวร์ขนาดเล็กอย่าง VPS ราคา 6 ดอลลาร์ได้ หากคุณต้องการเพียงรูปแบบการทำงานแบบหลาย agent มากกว่าตัวเฟรมเวิร์ก การรัน Claude Code สองเซสชันบนเครื่องเดียวกันเพื่อให้ส่งข้อความหากันได้โดยตรง เป็นทางเลือกที่ใช้ทรัพยากรน้อยกว่าและดูแลความปลอดภัยได้ง่ายกว่ามาก

ความเสี่ยงอยู่ที่ตัว Web UI เนื่องจากเป็นแผงควบคุมสำหรับระบบที่สามารถรันคำสั่งและเขียนไฟล์ได้ ดังนั้นการเปิด Web UI ที่ไม่มีการยืนยันตัวตนทิ้งไว้จึงเปรียบเสมือนการเปิดช่องทางให้ผู้บุกรุกเข้ามาควบคุมระบบได้โดยตรง และนี่คือกับดักที่คู่มือการติดตั้งส่วนใหญ่พาคุณเดินเข้าไป: ตัวอย่างใน docker run เผยแพร่หน้าอินเทอร์เฟซโดยไม่ได้ระบุที่อยู่ (address) ณ วันที่ 2026-10-12 คำสั่งโดยตรงใน README จะแมปพอร์ต 80 ของโฮสต์ (-p 80:80), ตัวติดตั้ง A0 Install ใช้พอร์ต 5080, คู่มือการติดตั้งบน VPS แนะนำพอร์ต 50080 ในขณะที่คู่มือสำหรับเวอร์ชัน v0.9.x ใช้พอร์ต 50001 ไม่ว่าคุณจะเลือกพอร์ตใด การแมปพอร์ตโดยไม่ระบุที่อยู่จะทำให้บริการฟังบนทุก network interface ซึ่งบน VPS สาธารณะหมายความว่าบริการนั้นจะเข้าถึงได้จากอินเทอร์เน็ตทันทีที่คอนเทนเนอร์เริ่มทำงาน การแก้ไขจุดนี้คือสิ่งแรกที่คุณควรทำ ไม่ใช่สิ่งสุดท้าย

สิ่งที่จำเป็นต้องมี

คุณต้องมี VPS ที่ติดตั้ง Docker ไว้แล้ว, API key สำหรับโมเดลภาษาหรือโมเดลภายในเครื่องที่คุณต้องการเชื่อมต่อ และ RAM อย่างน้อยสองสามกิกะไบต์เพื่อเริ่มต้นใช้งาน Agent Zero สามารถทำงานได้ทุกที่ที่ Docker ทำงานได้ ตั้งแต่ VPS ขนาดเล็กไปจนถึงเซิร์ฟเวอร์ที่มี GPU หากคุณยังไม่คุ้นเคยกับ Docker คู่มือพื้นฐานเกี่ยวกับ Docker จะครอบคลุมเนื้อหาที่คำสั่งด้านล่างนี้อ้างอิงถึง

การติดตั้งด้วย Docker โดยผูกกับ loopback

คู่มือการเริ่มต้นใช้งานฉบับย่อที่ระบุไว้คือคำสั่ง docker run เพียงบรรทัดเดียว การเปลี่ยนแปลงที่สำคัญจากเวอร์ชันที่คัดลอกไปวางทั่วไปคือที่อยู่ (address) ที่คุณเลือกเผยแพร่ อย่าเผยแพร่ไปยังทุกอินเทอร์เฟซเหมือนที่ -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 และตั้งค่าชื่อผู้ใช้และรหัสผ่านสำหรับ UI ในเมนู Settings, Authentication ซึ่งเอกสารอย่างเป็นทางการระบุว่าควรทำก่อนที่จะเปิดให้ผู้อื่นเข้าถึงอินสแตนซ์ สำหรับการตั้งค่าแบบหลายผู้ใช้ถาวร ให้วางไว้หลัง VPN หรือ reverse proxy ที่มีการตรวจสอบสิทธิ์แทน แต่อย่าเผยแพร่ UI โดยตรงสู่สาธารณะบนอินเทอร์เน็ตเด็ดขาด นิสัยนี้ควรนำไปใช้กับเครื่องมืออื่นๆ ทุกตัวบนเซิร์ฟเวอร์ที่มีอินเทอร์เฟซสำหรับควบคุมสิ่งที่ละเอียดอ่อน ซึ่งเป็นวิธีเดียวกับที่ควรใช้ในการเข้าถึง a self-hosted open-kritt scanner โดยผ่าน tunnel ไปยัง UI แทนการเปิดพอร์ตสาธารณะ

จุดที่คู่มืออื่นหยุดนำเสนอ และเหตุผลที่คุณไม่ควรหยุดแค่นั้น

หากคุณค้นหาวิธีติดตั้ง Agent Zero คุณจะพบกับคู่มือจำนวนมาก รวมถึงคู่มือจากผู้ให้บริการโฮสติ้ง ที่แนะนำให้คุณรัน Web UI บนพอร์ตสาธารณะ (พอร์ต 50001 ในเวอร์ชันเก่า หรือ 80, 5080 หรือ 50080 ในเวอร์ชันใหม่) แล้วจบลงเพียงแค่นั้น นั่นคือจุดที่ความเสี่ยงเริ่มต้นขึ้น ไม่ใช่จุดสิ้นสุด มีสองสิ่งที่ต้องทำเพื่อปิดงานให้สมบูรณ์ ประการแรก คือการเก็บ UI ไว้เป็นส่วนตัวตามที่กล่าวไปข้างต้น ประการที่สอง คือการติดตั้ง firewall แบบ default-deny ไว้หน้าเซิร์ฟเวอร์ เพื่อป้องกันไม่ให้บริการที่คุณลืมทิ้งไว้ตอบสนองต่ออินเทอร์เน็ต:

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

อย่างไรก็ตาม โปรดทราบถึงข้อจำกัดของมัน: Docker จะจัดการเส้นทางจราจรสำหรับพอร์ตคอนเทนเนอร์ที่เปิดไว้ก่อนที่กฎของ UFW จะทำงาน ดังนั้น firewall จึงไม่ครอบคลุมพอร์ตคอนเทนเนอร์ที่เปิดไว้ทุกอินเทอร์เฟซ นี่คือเหตุผลว่าทำไมการ bind ไว้ที่ loopback ตามที่กล่าวไปข้างต้นจึงสำคัญ และ วิธีที่พอร์ต Docker ข้ามการทำงานของ UFW ได้อธิบายรายละเอียดไว้แล้ว โปรดปฏิบัติตาม พื้นฐานของ firewall เพื่อให้เห็นภาพรวมทั้งหมด และระวัง ช่องโหว่ของ IPv6 เพราะบริการที่อยู่บน :: สามารถเข้าถึงได้ผ่าน IPv6 แม้ว่ากฎ IPv4 ของคุณจะดูแน่นหนาแล้วก็ตาม

การแยกส่วนด้วย Container ช่วยปกป้อง Agent ไม่ใช่ปกป้องเซิร์ฟเวอร์ของคุณ

การออกแบบของ Agent Zero มีจุดเด่นเรื่องการแยกส่วนในระดับหนึ่ง คือตัวเฟรมเวิร์กและ Agent ทุกตัวที่ถูกสร้างขึ้นจะทำงานอยู่ภายใน Docker container ของมันเอง แทนที่จะทำงานบนโฮสต์โดยตรง ดังนั้นโค้ดที่ Agent เขียนและรันจะอยู่ใน container ไม่ใช่ในโฮมไดเรกทอรีของคุณ ซึ่งถือเป็นข้อดี ส่วน Agent ย่อยจะใช้ container ร่วมกับ Agent หลัก ดังนั้นกำแพงป้องกันจึงอยู่ระหว่าง Agent กับโฮสต์ของคุณ ไม่ใช่ระหว่างตัว Agent ด้วยกันเอง การเข้าใจว่า "มันถูกทำ sandbox ไว้แล้ว ดังนั้นฉันจึงปลอดภัย" แล้วหยุดอยู่แค่นั้นเป็นเรื่องที่ง่ายเกินไป การแยกส่วนด้วย container เพียงแค่ช่วยไม่ให้งานของ Agent ไปปนกับโฮสต์เท่านั้น แต่มันไม่ได้ช่วยปกป้องเซิร์ฟเวอร์ของคุณจากอินเทอร์เน็ต หรือป้องกันไม่ให้ Web UI ที่เปิดเผยอยู่ถูกบุคคลภายนอกเข้ามาควบคุมได้ สิ่งเหล่านี้เป็นหน้าที่ของคุณที่ต้องจัดการบนโฮสต์ คุณควรตัดสินใจตั้งแต่ต้นว่า Agent สามารถทำอะไรได้บ้างในขณะที่ไม่มีใครเฝ้าดู ซึ่งเป็นหลักการเดียวกับการตัดสินใจเบื้องหลัง โหมดการอนุญาตของ Claude Code โดยเซิร์ฟเวอร์ที่ไม่มีคนดูแลควรใช้การตั้งค่าที่เข้มงวดกว่าแล็ปท็อปที่วางอยู่ตรงหน้าคุณ

ความลับ ผู้ใช้งาน และโฮสต์

เก็บ API key ของโมเดลและข้อมูลรับรองอื่นๆ ไว้ในไฟล์คอนฟิกของ Agent Zero หรือไฟล์ environment ที่มีเพียงบัญชีที่เกี่ยวข้องเท่านั้นที่อ่านได้ โดยต้องไม่อยู่ในประวัติการใช้งาน shell และไม่อยู่ใน repository ใดๆ แนวคิดเดียวกันนี้ใช้กับทุกสิ่งที่ปกป้องความลับบนเครื่อง เนื่องจาก การทำ hardening ให้ Vaultwarden นั้นขึ้นอยู่กับ admin token และไฟล์สำรองข้อมูลมากกว่าการเข้ารหัสที่แอปพลิเคชันทำได้ดีอยู่แล้ว ให้จัดการเครื่องด้วยผู้ใช้งานที่ไม่มีสิทธิ์พิเศษแทนการใช้ root ตามหลัก ผู้ใช้งานที่มีสิทธิ์น้อยที่สุด และเปลี่ยนการเข้าถึง SSH ให้เป็นการยืนยันตัวตนด้วย key เท่านั้น ดังที่ระบุไว้ใน การทำ SSH hardening จากนั้นให้ตรวจสอบรายการด้านล่างเพื่อให้แน่ใจว่าไม่มีสิ่งใดตกหล่น

ToolVPS hardening checklist

หากคุณกำลังเปรียบเทียบเอเจนต์ นี่คือแนวทางความปลอดภัยแบบเดียวกับที่ คู่มือการทำ hardening ของ OpenClaw และ คู่มือของ OpenHands ใช้ ได้แก่ การเก็บส่วนควบคุมไว้เป็นส่วนตัว การรันด้วยผู้ใช้งานที่ไม่มีสิทธิ์พิเศษ การตั้งค่า firewall เป็นค่าเริ่มต้น และการปฏิบัติต่อโฮสต์เสมือนว่ารันโค้ดที่ไม่ได้เขียนขึ้นเอง สำหรับการเปรียบเทียบเอเจนต์ทั้ง 5 รายการแบบเคียงข้างกัน โปรดดู เอเจนต์ AI แบบ self-hosted ที่ดีที่สุดในปี 2026

แนวคิดพื้นฐานของสิ่งเหล่านี้อยู่ใน การสร้างเอเจนต์ AI ของคุณเองบน VPS และ Dify เป็นอีกหนึ่งแพลตฟอร์มแบบ self-host ที่น่าสนใจในการเปรียบเทียบ

FAQ

การ self-host Agent Zero ปลอดภัยหรือไม่?

ปลอดภัย หากคุณเก็บ Web UI ไว้เป็นส่วนตัวและเสริมความปลอดภัยให้กับโฮสต์ Agent Zero มีการรันโค้ด, เบราว์เซอร์ และเชลล์ โดยควบคุมผ่าน Web UI บนพอร์ตของโฮสต์ที่คุณเปิดไว้ ดังนั้นความเสี่ยงจึงอยู่ที่อินเทอร์เฟซที่เปิดเผย ไม่ใช่ตัวเฟรมเวิร์กเอง ให้ผูก UI ไว้กับ loopback และเข้าถึงผ่าน SSH หรือ VPN, ตั้งค่าชื่อผู้ใช้และรหัสผ่านสำหรับ UI, ติดตั้งไฟร์วอลล์แบบ default-deny ไว้ด้านหน้า และรันด้วยผู้ใช้ที่ไม่มีสิทธิ์ระดับ root

โดยค่าเริ่มต้น Agent Zero เปิดเผย Web UI สู่สาธารณะหรือไม่?

คำสั่ง docker run ที่ระบุไว้ในเอกสารจะเผยแพร่อินเทอร์เฟซโดยไม่ระบุที่อยู่ (README ใช้ -p 80:80) ซึ่งการแมปในลักษณะนี้จะทำให้บริการฟังบนทุก network interface ซึ่งหากเป็น VPS สาธารณะ หมายความว่าบริการจะเข้าถึงได้จากอินเทอร์เน็ตทันทีที่คอนเทนเนอร์เริ่มทำงาน UFW ไม่สามารถป้องกันได้เนื่องจาก Docker จัดเส้นทางพอร์ตที่เผยแพร่ข้ามไฟร์วอลล์ไป ให้เพิ่ม 127.0.0.1 เข้าไปในที่อยู่ที่เผยแพร่เพื่อให้ UI ฟังเฉพาะบน loopback เท่านั้น จากนั้นจึงเข้าถึงผ่าน SSH tunnel หรือ VPN

Agent Zero สามารถรันบน VPS ขนาดเล็กได้หรือไม่?

ได้ Agent Zero รันได้ทุกที่ที่ Docker รันได้ รวมถึง VPS ขนาดเล็กราคาประหยัด อย่างไรก็ตาม งานที่หนักกว่าและโมเดลขนาดใหญ่ที่รันในเครื่องต้องการหน่วยความจำมากขึ้น หากคุณเชื่อมต่อกับโมเดลที่ self-host แทนที่จะเป็น hosted API ให้เลือกขนาดเซิร์ฟเวอร์ตามความต้องการของโมเดล ไม่ใช่แค่สำหรับ Agent Zero เท่านั้น

Agent Zero แตกต่างจาก OpenClaw หรือ Hermes อย่างไร?

เครื่องมือเหล่านี้มีความทับซ้อนกันแต่มีเป้าหมายที่ต่างกัน Agent Zero เป็นเฟรมเวิร์กที่เน้น Docker เป็นหลัก โดยสร้างขึ้นรอบตัวแทนหลัก (primary agent) ที่สามารถสร้างตัวแทนย่อย (subordinate agent) ภายในคอนเทนเนอร์ของตนเอง ซึ่งควบคุมผ่าน Web UI ส่วน OpenClaw และ Hermes เป็นผู้ช่วยส่วนตัวที่คุณเข้าถึงผ่านแอปแชท สำหรับสถานะความปลอดภัยนั้นเหมือนกันทั้งหมด คือต้องเก็บส่วนควบคุมไว้เป็นส่วนตัวและเสริมความปลอดภัยให้กับโฮสต์เสมอ