Platforms overview

แอป Linux

Gateway รองรับ Linux อย่างเต็มรูปแบบและต้องใช้ Node โดยยังสามารถใช้ Bun เป็นตัวติดตั้งการพึ่งพาหรือตัวเรียกใช้สคริปต์แพ็กเกจได้ แต่ไม่สามารถใช้รัน OpenClaw ได้ เนื่องจากไม่มี node:sqlite

แอปเดสก์ท็อปคู่หู

แอปคู่หู OpenClaw สำหรับ Linux เป็นแอปเดสก์ท็อป Tauri สำหรับ Gateway ภายในเครื่อง โดยแอปจะ:

  • ติดตั้ง OpenClaw CLI และรันไทม์ Node ที่มีการจัดการเมื่อยังไม่มี โดยบิลด์รุ่นเผยแพร่จะติดตั้งช่องทางเสถียรโดยอัตโนมัติ ส่วนบิลด์สำหรับการพัฒนาจะถามช่องทางก่อน
  • เชื่อมต่อกับ Gateway ที่ทำงานสมบูรณ์ก่อนพยายามเปลี่ยนแปลงบริการ
  • มอบหมายการติดตั้ง การเริ่ม หยุด และรีสตาร์ตให้บริการผู้ใช้ systemd ที่ CLI จัดการ
  • ค้นหา Gateway ที่อยู่ใกล้เคียงผ่าน Bonjour และเปิด UI ควบคุมของแต่ละรายการในหน้าต่างที่กำหนดขอบเขตตามเส้นทาง เพื่อให้แดชบอร์ด Gateway หลายรายการเชื่อมต่อและใช้งานพร้อมกันได้
  • เปิด UI ควบคุมที่ Gateway ให้บริการด้วย URL การยืนยันตัวตนที่แก้ไขแล้ว
  • เปิด UI ควบคุมในโหมดเริ่มต้นใช้งานหลังจากติดตั้งในการเรียกใช้ครั้งแรก ซึ่ง เสนอให้นำเข้าหน่วยความจำ Claude Code, Codex หรือ Hermes ที่ตรวจพบไปยัง พื้นที่ทำงานของเอเจนต์ (การนำเข้าเดียวกันนี้ยังใช้งานได้ภายหลังที่ การตั้งค่า → นำเข้าหน่วยความจำ)
  • เรนเดอร์ Canvas ที่เอเจนต์ควบคุมและเนื้อหา A2UI ที่รวมมาให้สำหรับโฮสต์ Node ของ CLI ที่อยู่ร่วมกัน
  • ยังคงใช้งานได้จากถาดระบบเมื่อปิดหน้าต่าง

รุ่นเสถียรที่สร้างจาก main จะจัดส่งชุด .deb และ AppImage เป็นแอสเซ็ตใน รุ่นเผยแพร่บน GitHub สำหรับแท็กนั้น โดยใช้ชื่อ OpenClaw-<version>-amd64.deb และ OpenClaw-<version>-amd64.AppImage พร้อมไฟล์เช็กซัม SHA256SUMS.linux-app.txt อยู่ข้างกัน ดาวน์โหลด .deb และติดตั้งด้วย sudo apt install ./OpenClaw-<version>-amd64.deb หรือกำหนดให้ AppImage เรียกใช้งานได้แล้วรันโดยตรง รันไทม์ AppImage ต้องใช้ FUSE 2 (sudo apt install libfuse2 หรือ libfuse2t64 บน Ubuntu 24.04+); หากไม่มี ให้รัน AppImage ด้วย APPIMAGE_EXTRACT_AND_RUN=1

คุณยังสามารถสร้างชุดเดียวกันจากเช็กเอาต์ซอร์สได้:

bash
cd apps/linux/src-tauripnpm dlx @tauri-apps/cli@2.11.4 build --bundles deb,appimage

เวิร์กโฟลว์ CI Linux App จะอัปโหลดชุดเดียวกันเป็นอาร์ติแฟกต์ openclaw-linux-companion สำหรับ pull request ที่แก้ไขแอปและสำหรับ การเรียกใช้ด้วยตนเอง ดูการพึ่งพาสำหรับบิลด์ Linux และคำสั่งสำหรับการพัฒนาได้ที่ apps/linux/README.md ในรีโพซิทอรี

แชทด่วน

เปิดแชทด่วนด้วย Ctrl+Shift+Space หรือรายการ แชทด่วน ในถาดระบบ ชิปเอเจนต์ จะแสดงอวตาร อีโมจิ หรืออักษรย่อที่กำหนดค่าไว้ ให้เลือกชิปเพื่อสลับเอเจนต์ ข้อความจะใช้เซสชันหลักของเอเจนต์ที่เลือกและเป็นไปตามขอบเขตเซสชันส่วนกลาง ไคลเอ็นต์ Rust แบบเนทีฟเป็นเจ้าของข้อมูลประจำตัวอุปกรณ์ Ed25519 แบบถาวร โดยใช้ โทเค็นหรือรหัสผ่านที่ใช้ร่วมกันจากการส่งต่อของ CLI เพื่อเริ่มต้นการจับคู่เท่านั้น จากนั้นจัดเก็บและ เลือกใช้โทเค็นอุปกรณ์ที่ Gateway ออกให้ในการเชื่อมต่อครั้งต่อไป ข้อมูลประจำตัวและ โทเค็นอุปกรณ์จะอยู่ในไดเรกทอรีการกำหนดค่าของแอป ภายในไฟล์โหมด 0600; WebView ของแชทด่วน จะไม่ได้รับทั้งข้อมูลรับรองและ WebSocket

เมื่อการเชื่อมต่อแบบเนทีฟไม่พร้อมใช้งาน แชทด่วนจะแสดง ไม่สามารถเข้าถึง Gateway — กำลังลองใหม่ และปิดใช้งานการส่งจนกว่าจะเชื่อมต่อใหม่ อุปกรณ์ระยะไกล ที่เข้าสู่ขั้นตอนการจับคู่แล้วจะแสดง อนุมัติอุปกรณ์นี้ในแดชบอร์ด (Nodes) แทน พร้อม ID อุปกรณ์แบบสั้นเมื่อ Gateway ระบุให้ Gateway ที่ต้องใช้ข้อมูลรับรองร่วมกันซึ่งขาดหายไปจะแสดง Gateway ต้องใช้ ข้อมูลรับรอง — เปิดแดชบอร์ดบนโฮสต์ Gateway; ในสถานะดังกล่าวจะไม่มีคำขอจับคู่ รอการอนุมัติ คำแนะนำในการแก้ไขที่เซิร์ฟเวอร์ระบุ จะแทนที่ข้อความสำรองเหล่านี้เมื่อมีรายละเอียดเฉพาะเจาะจงกว่า สำหรับ Gateway ที่ใช้ TLS นั้น CLI จะส่งลายนิ้วมือ SHA-256 ของใบรับรอง Gateway ให้แอป ไคลเอ็นต์แบบเนทีฟจะตรึงใบรับรองนั้นและรายงาน การเชื่อถือ TLS ของ Gateway ล้มเหลว — ตรวจสอบลายนิ้วมือใบรับรอง แยกจากกรณีระบบหยุดทำงาน Gateway ที่กำหนดค่าข้อมูลลับร่วมกันผ่าน SecretRef จะละข้อมูลดังกล่าวจาก การส่งต่อของ CLI การติดตั้งที่จับคู่ไว้แล้วจะยังทำงานต่อผ่านโทเค็นอุปกรณ์ ที่จัดเก็บไว้ แต่การติดตั้งใหม่ไม่สามารถสร้างคำขอจับคู่ที่รอดำเนินการภายใต้การยืนยันตัวตน ด้วยข้อมูลลับร่วมกันได้หากไม่มีข้อมูลรับรองสำหรับเริ่มต้นนั้น การแลกรหัสตั้งค่าและ bootstrapToken ต้องใช้ UI ผลิตภัณฑ์เฉพาะและยังคงเป็น งานติดตามผล แชทด่วนจะไม่พยายามดำเนินขั้นตอนใดขั้นตอนหนึ่ง

บน X11 ให้ใช้ไอคอนเฟืองในแชทด่วนเพื่อบันทึกหรือรีเซ็ตทางลัดที่กำหนดเอง ตัวสลับ ทางลัดแชทด่วน ในถาดระบบจะเปิดหรือปิดใช้งานทางลัดโดยไม่ปิดใช้งาน รายการ แชทด่วน ปกติในถาดระบบ ทางลัดส่วนกลางไม่พร้อมใช้งานบน Wayland ดังนั้น การตั้งค่าทางลัดจะถูกซ่อน และรายการในถาดระบบยังคงเป็นจุดเข้าใช้งาน หลังจากยอมรับการส่งแล้ว แชทด่วนจะยังเปิดอยู่และสตรีมคำตอบข้อความธรรมดาของเอเจนต์ ที่เลือกไว้ใต้ช่องเขียน กด Esc เพื่อปิดแถบและคำตอบ โดย Ctrl+Enter ยังคงใช้เปิดแดชบอร์ด

Canvas

Canvas บน Linux ใช้สองโปรเซสที่ทำงานร่วมกัน openclaw node run ยังคงเป็นการเชื่อมต่อ Node เดียวกับ Gateway; Plugin linux-canvas ที่รวมมาให้จะส่งต่อการเรียก canvas.* ไปยังแอปเดสก์ท็อปที่กำลังทำงานผ่านซ็อกเก็ต Unix สำหรับผู้ใช้เท่านั้น แอปเป็นเจ้าของหน้าต่าง WebView แบบเปิดเมื่อต้องการหนึ่งหน้าต่าง ซึ่งรวมตัวเรนเดอร์ A2UI ที่ให้มาด้วยและบริดจ์การดำเนินการกลับไปยังเอเจนต์

Plugin เปิดใช้งานเป็นค่าเริ่มต้น โดยจะประกาศ Canvas เฉพาะเมื่อมีซ็อกเก็ตเดสก์ท็อปอยู่ที่ $XDG_RUNTIME_DIR/openclaw-canvas.sock หรือ /tmp/openclaw-canvas-$UID.sock เมื่อ XDG_RUNTIME_DIR ไม่พร้อมใช้งาน ปิดใช้งานได้ด้วย plugins.entries.linux-canvas.enabled: false บนเซิร์ฟเวอร์ Linux แบบไม่มีส่วนแสดงผลที่ไม่มีแอปเดสก์ท็อป จะไม่มีการประกาศ Canvas

Linux v1 ใช้หน้าต่าง Canvas หนึ่งหน้าต่าง สามารถเรนเดอร์หน้า HTTP และ HTTPS ได้ แต่จะยอมรับการดำเนินการ A2UI จากตัวเรนเดอร์ที่รวมมาให้เท่านั้น

ทางเลือก CLI และ SSH

CLI ยังคงเป็นตัวเลือกที่ง่ายที่สุดสำหรับเซิร์ฟเวอร์แบบไม่มีส่วนแสดงผล, VPS หรือ Gateway ระยะไกล:

  1. ติดตั้ง Node 24.15+ (แนะนำ), Node 22.22.3+ (LTS) หรือ Node 25.9+
  2. npm i -g openclaw@latest
  3. openclaw onboard --install-daemon
  4. จากแล็ปท็อปของคุณ: ssh -N -L 18789:127.0.0.1:18789 <user>@<host>
  5. เปิด http://127.0.0.1:18789/ และยืนยันตัวตนด้วยข้อมูลลับร่วมกันที่กำหนดค่าไว้ (ใช้โทเค็นเป็นค่าเริ่มต้น; ใช้รหัสผ่านหาก gateway.auth.mode เป็น "password")

คู่มือเซิร์ฟเวอร์ฉบับเต็ม: เซิร์ฟเวอร์ Linux ตัวอย่าง VPS แบบทีละขั้นตอน: exe.dev

ความสามารถของ Node

Plugin Node สำหรับ Linux ที่รวมมาให้จะเพิ่มความสามารถอุปกรณ์บริการ openclaw node แก่ CLI โดยไม่ต้องใช้แอปเดสก์ท็อป คำสั่งจะถูกประกาศไปยัง Gateway เฉพาะเมื่อเปิดใช้ความสามารถนั้นและมีเครื่องมือภายในเครื่องที่จำเป็น

ความสามารถ ค่าเริ่มต้น ข้อกำหนด
การแจ้งเตือนบนเดสก์ท็อป (system.notify) เปิด notify-send จาก libnotify และเซสชันการแจ้งเตือนบนเดสก์ท็อป
ภาพถ่ายและคลิปจากกล้อง (camera.*) ปิด FFmpeg, สิทธิ์เข้าถึงกล้อง V4L2 และ PulseAudio หรือ PipeWire สำหรับเสียงในคลิป
ตำแหน่งที่ตั้ง (location.get) ปิด GeoClue2 และเดโม where-am-i

กำหนดค่า Plugin ใน openclaw.json:

json5
{  plugins: {    entries: {      "linux-node": {        config: {          notify: { enabled: true },          camera: { enabled: true },          location: { enabled: true },        },      },    },  },}

รีสตาร์ตบริการ Node หลังเปลี่ยนการตั้งค่าเหล่านี้ ระบบจะตรวจสอบความพร้อมใช้งานหนึ่งครั้งต่อโปรเซส และสร้างการประกาศ Node ใหม่เมื่อรีสตาร์ต

Gateway จะอนุมัติพื้นผิวคำสั่งและความสามารถของ Node แยกจากการจับคู่อุปกรณ์ เมื่อเริ่มต้นครั้งแรกหรือหลังเปิดใช้ความสามารถเพิ่มเติม ให้อนุมัติพื้นผิวที่รอดำเนินการ:

bash
openclaw nodes pendingopenclaw nodes approve <requestId>

Node สามารถเชื่อมต่อและจับคู่กับอุปกรณ์แล้ว ขณะที่ caps และ commands ที่มีผลยังคงว่างอยู่จนกว่าการอนุมัตินี้จะเสร็จสมบูรณ์

ผู้ใช้บริการต้องมีสิทธิ์อ่านอุปกรณ์กล้อง ซึ่งโดยทั่วไปจะให้ผ่านกลุ่ม video คลิปจากกล้องจะใช้แหล่ง PulseAudio หรือ PipeWire เริ่มต้นเมื่อ includeAudio เป็น true; เสียงไมโครโฟนมีอยู่เฉพาะในรูปแทร็กของคลิปนั้น ไม่ใช่คำสั่งแยกต่างหาก ตำแหน่งที่ตั้งกำหนดให้ผู้ใช้บริการ Node ได้รับอนุญาตตามนโยบาย GeoClue ของโฮสต์

camera.snap และ camera.clip ยังต้องเปิดใช้งานอย่างชัดเจนจาก Gateway ผ่าน gateway.nodes.allowCommands ดูเพย์โหลด ขีดจำกัด และข้อผิดพลาดได้ที่ การจับภาพจากกล้อง และ คำสั่งตำแหน่งที่ตั้ง

การติดตั้ง

บริการ Gateway (systemd)

ติดตั้งด้วยวิธีใดวิธีหนึ่งต่อไปนี้:

bash
openclaw onboard --install-daemonopenclaw gateway installopenclaw configure   # select "Gateway service" when prompted

ซ่อมแซมหรือย้ายข้อมูลการติดตั้งที่มีอยู่:

bash
openclaw doctor

openclaw gateway install จะเรนเดอร์ยูนิต ผู้ใช้ ของ systemd เป็นค่าเริ่มต้น คำแนะนำ เกี่ยวกับบริการฉบับเต็ม รวมถึงยูนิตระดับ ระบบ สำหรับโฮสต์ที่ใช้ร่วมกันหรือ เปิดตลอดเวลา อยู่ใน คู่มือการปฏิบัติงาน Gateway

เขียนยูนิตด้วยตนเองเฉพาะสำหรับการตั้งค่าแบบกำหนดเอง ตัวอย่างยูนิตผู้ใช้ขั้นต่ำ (~/.config/systemd/user/openclaw-gateway[-<profile>].service):

ini
[Unit]Description=OpenClaw Gateway (profile: <profile>, v<version>)After=network-online.targetWants=network-online.targetStartLimitBurst=5StartLimitIntervalSec=60 [Service]ExecStart=/usr/local/bin/openclaw gateway --port 18789Restart=alwaysRestartSec=5RestartPreventExitStatus=78TimeoutStopSec=30TimeoutStartSec=30SuccessExitStatus=0 143OOMPolicy=continueKillMode=control-group [Install]WantedBy=default.target

ยูนิตที่เขียนด้วยตนเองจะไม่ได้รับการปรับขนาดฮีปแบบปรับตัวที่ openclaw gateway install เขียนให้บริการ Gateway ที่มีการจัดการ ควรใช้ตัวติดตั้งที่มีการจัดการ หรือกำหนดขีดจำกัดฮีปอย่างชัดเจนในตัวควบคุมแบบกำหนดเองหลังจากคำนึงถึงพื้นที่สำรองสำหรับหน่วยความจำเนทีฟแล้ว

เปิดใช้งาน:

bash
systemctl --user enable --now openclaw-gateway[-<profile>].service

ภาวะกดดันของหน่วยความจำและการยุติโดย OOM

บน Linux เคอร์เนลจะเลือกโปรเซสที่จะยุติโดย OOM เมื่อโฮสต์, VM หรือ cgroup ของคอนเทนเนอร์ มีหน่วยความจำไม่เพียงพอ Gateway ไม่ควรถูกเลือก เนื่องจากเป็นเจ้าของ เซสชันและการเชื่อมต่อช่องทางที่มีอายุยาวนาน ดังนั้น OpenClaw จึงปรับให้โปรเซสลูก ชั่วคราวถูกยุติก่อนเมื่อเป็นไปได้

สำหรับการสร้างโปรเซสลูก Linux ที่เข้าเกณฑ์ OpenClaw จะห่อคำสั่งด้วยชิม /bin/sh แบบสั้นที่เพิ่ม oom_score_adj ของโปรเซสลูกเองเป็น 1000 จากนั้น exec คำสั่งจริง การดำเนินการนี้ไม่ต้องใช้สิทธิ์พิเศษ เพราะโปรเซสสามารถเพิ่ม คะแนน OOM ของตนเองได้เสมอ

พื้นผิวโปรเซสลูกที่ครอบคลุม:

  • โปรเซสลูกของคำสั่งที่ตัวควบคุมจัดการ
  • โปรเซสลูกของเชลล์ PTY
  • โปรเซสลูกของเซิร์ฟเวอร์ stdio ของ MCP
  • โปรเซสเบราว์เซอร์/Chrome ที่ OpenClaw เรียกใช้ (ผ่านรันไทม์โปรเซสของ SDK สำหรับ Plugin)

ตัวห่อนี้ใช้เฉพาะ Linux และจะถูกข้ามเมื่อ /bin/sh ไม่พร้อมใช้งาน หรือเมื่อ สภาพแวดล้อมของโปรเซสลูกตั้งค่า OPENCLAW_CHILD_OOM_SCORE_ADJ เป็น 0, false, no หรือ off

ตรวจสอบโปรเซสลูก:

bash
cat /proc/<child-pid>/oom_score_adj

ค่าที่คาดไว้สำหรับโปรเซสลูกที่ครอบคลุมคือ 1000; ตัวโปรเซส Gateway เอง จะคงคะแนนปกติไว้ (โดยทั่วไปคือ 0)

OOMPolicy=continue ของยูนิต systemd จะทำให้บริการ Gateway ยังทำงานต่อเมื่อ โปรเซสลูกชั่วคราวถูกตัว OOM killer เลือก แทนที่จะทำเครื่องหมายให้ทั้ง ยูนิตล้มเหลวและรีสตาร์ตทุกช่องทาง โดยโปรเซสลูก/เซสชันที่ล้มเหลวจะรายงาน ข้อผิดพลาดของตนเอง

การดำเนินการนี้ไม่ได้ทดแทนการปรับแต่งหน่วยความจำตามปกติ หาก VPS หรือคอนเทนเนอร์ยุติ โปรเซสลูกซ้ำๆ ให้เพิ่มขีดจำกัดหน่วยความจำ ลดการทำงานพร้อมกัน หรือเพิ่ม การควบคุมทรัพยากรที่เข้มงวดยิ่งขึ้น (MemoryMax= ของ systemd, ขีดจำกัดหน่วยความจำของคอนเทนเนอร์)

เนื้อหาที่เกี่ยวข้อง

Was this useful?
On this page

On this page