---
read_when:
    - กำลังมองหาสถานะของแอปคู่หูสำหรับ Linux
    - การเปิดใช้งานกล้อง ตำแหน่งที่ตั้ง หรือการแจ้งเตือนบนโฮสต์ Node ที่ใช้ Linux
    - การวางแผนความครอบคลุมของแพลตฟอร์มหรือการมีส่วนร่วม
    - การดีบักการปิดโปรเซสโดย OOM บน Linux หรือการออกด้วยรหัส 137 บน VPS หรือคอนเทนเนอร์
summary: สถานะการรองรับ Linux และแอปคู่หู
title: แอป Linux
x-i18n:
    generated_at: "2026-07-21T15:20:18Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: 04ba8d88dda953a3168a98ae0fa47812dcebeb29e12325620d76cb401496676c
    source_path: platforms/linux.md
    workflow: 16
---

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](https://github.com/openclaw/openclaw/releases) สำหรับแท็กนั้น
โดยใช้ชื่อ `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-tauri
pnpm 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](/th/vps) ตัวอย่าง VPS แบบทีละขั้นตอน:
[exe.dev](/th/install/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 pending
openclaw nodes approve <requestId>
```

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

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

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

## การติดตั้ง

- [เริ่มต้นใช้งาน](/th/start/getting-started)
- [การติดตั้งและการอัปเดต](/th/install/updating)
- ทางเลือก: [เวิร์กโฟลว์แพ็กเกจ Bun](/th/install/bun), [Nix](/th/install/nix), [Docker](/th/install/docker)

## บริการ Gateway (systemd)

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

```bash
openclaw onboard --install-daemon
openclaw gateway install
openclaw configure   # select "Gateway service" when prompted
```

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

```bash
openclaw doctor
```

`openclaw gateway install` จะเรนเดอร์ยูนิต **ผู้ใช้** ของ systemd เป็นค่าเริ่มต้น คำแนะนำ
เกี่ยวกับบริการฉบับเต็ม รวมถึงยูนิตระดับ **ระบบ** สำหรับโฮสต์ที่ใช้ร่วมกันหรือ
เปิดตลอดเวลา อยู่ใน [คู่มือการปฏิบัติงาน Gateway](/th/gateway#supervision-and-service-lifecycle)

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

```ini
[Unit]
Description=OpenClaw Gateway (profile: <profile>, v<version>)
After=network-online.target
Wants=network-online.target
StartLimitBurst=5
StartLimitIntervalSec=60

[Service]
ExecStart=/usr/local/bin/openclaw gateway --port 18789
Restart=always
RestartSec=5
RestartPreventExitStatus=78
TimeoutStopSec=30
TimeoutStartSec=30
SuccessExitStatus=0 143
OOMPolicy=continue
KillMode=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, ขีดจำกัดหน่วยความจำของคอนเทนเนอร์)

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

- [ภาพรวมการติดตั้ง](/th/install)
- [เซิร์ฟเวอร์ Linux](/th/vps)
- [Raspberry Pi](/th/install/raspberry-pi)
- [คู่มือปฏิบัติงาน Gateway](/th/gateway)
- [การกำหนดค่า Gateway](/th/gateway/configuration)
