Zielgruppe: Teams mit OpenClaw auf Remote-Mac, die festen Egress per WireGuard, eine knappe Ausgangs-Whitelist und zuverlässigen Gateway-Reconnect brauchen. Linie 2026: curl-Installer, Node 22/24, openclaw onboard --install-daemon, Port 18789, optionale OPENCLAW_HOME-Mehrfachinstanzen. Mehr: Gateway-Härtung, Skills / doctor, CI-Gate. Konsole für Kurzblick; Preise, Kaufen, Hilfe ohne Login-Pflicht.

① Topologie und Least-Privilege-Prinzipien

OpenClaw-Daemon unter eigenem macOS-Benutzer; SSH getrennt; Modell-Egress nur über WireGuard — kleine Firewall- und Proxy-Regeln.

Schicht Empfohlene Massnahme Sicherheitsnutzen
Steuerpfad CI-Webhooks über Reverse-Proxy oder SSH-Tunnel auf 127.0.0.1 Kein sensibles JSON direkt am LAN
Datenpfad Default-deny egress; nur Resolver, NTP, Modell-FQDNs, npm-Registry falls Skills es brauchen Weniger Exfiltration und Zufalls-Downloads
Geheimnisse openclaw.json und .env.gateway mit chmod 600; Rotation an HR-Prozesse koppeln Auditierbare Kette
  1. Split-Control-Plane: Admin-SSH getrennt vom Dienstkonto, das launchd startet.
  2. Keine breiten Tunnels ohne Not: Volltunnel nur bei harten Compliance-Vorgaben.
  3. Logging: wg-Handshake-Alter und letzte erfolgreiche Modell-HEAD-Antwort in einer Zeile protokollieren.
  4. Outbound-Review: Jede neue Skill-URL vor Freigabe in die Firewall-Whitelist aufnehmen und im Ticket verlinken.

② Offizielle Installation und doctor-Validierung

Node 22 LTS oder 24 pinnen; CLI per Release-curl-Einzeiler; openclaw onboard --install-daemon für LaunchAgent nach Logout.

node -v   # Erwartung: v22.x oder v24.x
# curl-Einzeiler aus der offiziellen OpenClaw-Installationsseite (URL je Release)
openclaw onboard --install-daemon
openclaw doctor
openclaw gateway status --deep 2>/dev/null || openclaw gateway status

Nach dem ersten erfolgreichen doctor-Lauf die Ausgabe archivieren; bei Minor-Upgrades dient sie als Diff-Baseline für Provider-Keys und Bind-Parameter.

Zwei Instanzen: vor onboard jeweils OPENCLAW_HOME setzen (siehe CI-Gate).

  • Global installiertes openclaw gehört demselben Unix-Benutzer wie die launchd-Label.
  • openclaw doctor im Daemon-Kontext ohne Shell-Abweichung.
  • Port 18789 ist frei oder bewusst per Portweiterleitung geführt; nach Upgrades kein doppelter Listener.

③ WireGuard-Routing und DNS-Split

Enge AllowedIPs (Anbieter-CIDRs); Split-DNS nur für Modell-FQDNs — Git/CDN bleiben ausserhalb des Tunnels, damit CI nicht bremst.

sudo wg-quick up wg0
sudo wg show
scutil --dns | head -n 80
curl -4sv --max-time 20 https://api.openai.com/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY" -o /dev/null
Muster Wann sinnvoll Risiko bei Missachtung
Split-Tunnel + Split-DNS Anbieter verlangen feste Egress-IPs; Git bleibt direkt CI-Züge laufen unnötig über den Peer
Volltunnel Strikte Enklaven Höhere Reconnect-Sensitivität; Single Point of Failure
Statische IP nur am WG-Peer IP-Allowlists beim Modellbetreiber NAT-Drift bricht lange Agent-Läufe mitten in der Session

④ Gateway-Bindung, Token und Domänen-Whitelist

Gateway an 127.0.0.1:18789, TLS am Rand. Bearer in Keychain oder Env laut Plist. Ausgehende Domänen wie in Gateway-Härtung — nur Modell/Tool/npm falls nötig.

export OPENCLAW_GATEWAY_TOKEN="$(openssl rand -hex 32)"
OC_PORT=$(jq -r '.gateway.port // 18789' "$HOME/.openclaw/openclaw.json" 2>/dev/null || echo 18789)
curl -sS -H "Authorization: Bearer $OPENCLAW_GATEWAY_TOKEN" \
  "http://127.0.0.1:${OC_PORT}/health" || curl -sS "http://127.0.0.1:${OC_PORT}/"

⑤ Abbruch, Wiederverbindung und Health-Probes

Nach WG-Aussetzern: wg-quick hoch, dann Daemon neu starten (DNS-Cache). Minütliche curl-Probe per launchd; zwei Fehler hintereinander eskalieren.

  • ThrottleInterval in der Plist gegen enge Neustart-Schleifen nach Provider-Timeouts.
  • Tarball der letzten funktionierenden openclaw.json vor Routing-Experimenten — Rollback siehe Skills / Rollback / doctor.

⑥ CI-Webhook-Beispiel: fehlgeschlagene Schritte zusammenfassen

Fehlerzeilen aus Logs bündeln (<~4 KiB), sort -u, ein JSON mit job_id, commit_sha, summary_text. Backoff 2/4/8 s wie bei Argo-Webhook-Summary.

FAIL_LINES=$(grep -hEi 'error|fatal|invalid-key' "$CI_LOG_DIR"/*.log | tail -n 48 | sort -u)
curl -fsS -X POST "https://edge.example/v1/webhooks/ci" \
  -H "Authorization: Bearer $OPENCLAW_GATEWAY_TOKEN" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --arg t "$FAIL_LINES" --arg j "$CI_JOB_ID" --arg c "${CI_COMMIT_SHA:-}" \
      '{summary_text:$t,job_id:$j,commit_sha:$c}')"
Kennzahlen & Prüfkommandos
  • Standard-Port 18789 — per jq aus openclaw.json lesen, nicht hart im Skript duplizieren.
  • Backoff 2 / 4 / 8 s nach Konfigurationsänderungen und vor Health-Reads.
  • DNS-Check: scutil --dns und gezielter dig @resolver für Anbieter-Hostnamen.
  • Handshake: wg show wg0 latest-handshakes nach Reconnect mit Gateway-Logs korrelieren.

FAQ: typische Fehler

Handshake ok, TLS zum Anbieter bricht dennoch

Uhrzeit-Drift oder CA-Bundle — doctor als Dienstbenutzer.

Im Terminal grün, unter launchd rot

OPENCLAW_HOME/HTTP_PROXY in Plist vs. Shell vergleichen (launchctl print).

401-Stoss nach Token-Rotation

Proxy und Bearer atomar rotieren, dann ein Dienst-Restart.

Fazit und nächste Schritte

WireGuard + Split-DNS + Loopback 18789 + Bearer + zusammengefasste CI-Summaries bilden die kleinste stabile Fläche für OpenClaw auf Remote-Mac. Preise/Kaufen für Miet-Hardware; Hilfe, Blog und Konsole ohne Login-Pflicht nutzbar.

Remote-Mac für OpenClaw & WireGuard-Labore

Dedizierte Apple-Silicon-Knoten mit sauberem APFS und schnellen Neuinstallationen für Gateway-Nachweise. Preise und Checkout ohne Login-Pflicht; in der Konsole erhalten Sie einen begrenzten Gratis-Blick auf verfügbare Maschinen.