På en laptop tystnar OpenClaw så fort locket fälls ner: WhatsApp-meddelanden hopar sig, schemalagda jobb väntar på att du ska komma tillbaka. På en server fortsätter den svara. Haken är att gatewayen inte är någon chattwidget. Den håller dina kanalers inloggningsuppgifter och kör, om du inte slår på en sandlåda, verktyg direkt på värden. Att flytta den till en maskin som alltid är på är bara värt det om säkerhetsmodellen flyttar med.
Den här guiden gör det på ungefär 20 minuter på en nyinstallerad Ubuntu 24.04-VPS.
Senast kontrollerad 2026-10-04 mot OpenClaw 2026.9.8 (npm), Node 24.21 LTS och Ubuntu 24.04.
Det här behöver du
- En Linux-VPS. Vi använder vår AI-Agent-plan: 4 vCPU, 4 GB RAM, 40 GB disk, $10 i månaden. OpenClaw-dokumentationen nämner 6 GB RAM, men det gäller att bygga deras Docker-avbild från källkod; npm-paketet behöver inget bygge.
- En API-nyckel hos din modellleverantör och de chattkonton du vill koppla in.
- En SSH-nyckel på din laptop. Saknar du en: inloggning med SSH-nyckel.
En NAT-plan fungerar fint här, och passar kanske till och med bättre. Gatewayen behöver aldrig en öppen inkommande port: WhatsApp, Discord och Telegram (long polling som standard) kopplar upp sig utgående, och panelen når du via SSH. Ta en egen IPv4 bara om en kanal du behöver levererar via webhook eller om du planerar en publik omvänd proxy.
1. En användare som inte är root
OpenClaw kör verktyg som den användare som äger gatewayen. Är det root blir också varje kommando som en förvirrad eller promptinjicerad modell bestämmer sig för att köra ett root-kommando. OpenClaw-dokumentationen kallar körning som root osäker och utan stöd. Skapa en egen användare utan sudo:
# som root
apt update && apt -y upgrade
adduser --disabled-password --gecos "" claw
install -d -m 700 -o claw -g claw /home/claw/.ssh
install -m 600 -o claw -g claw ~/.ssh/authorized_keys /home/claw/.ssh/authorized_keys # nyckeln du lade till vid beställningen
loginctl enable-linger claw
Sista raden är viktigare än den ser ut. OpenClaw installerar en systemd-användartjänst, och utan lingering stoppar den tjänsten när du loggar ut. Det är det vanligaste "det funkade ju i går" på servrar.
2. Node 24 och OpenClaw
OpenClaw 2026.9.8 kräver Node >=24.16.0 <25 eller >=26.1.0. Ubuntus eget paket nodejs är äldre, så vi tar 24 LTS från NodeSource:
# som root
curl -fsSL https://deb.nodesource.com/setup_24.x | bash -
apt install -y nodejs
node -v # v24.16.0 eller nyare
npm install -g openclaw@latest
openclaw --version
Den officiella enradaren (curl -fsSL https://openclaw.ai/install.sh | bash) fungerar också och installerar Node åt dig. På en server föredrar vi de två explicita stegen: du ser vad som hamnar var, och binären ligger i /usr/bin i stället för i en hemkatalog som agenten kan skriva i.
3. Onboarding som agentanvändaren
Logga in som claw via SSH, inte med su. Bara en riktig inloggning startar systemd-användarhanteraren som tjänsten behöver:
# från din laptop (NAT-plan: lägg till -p <din SSH-port>)
ssh claw@<server>
openclaw onboard --install-daemon
openclaw gateway status
Guiden kontrollerar modellåtkomsten, skriver ~/.openclaw/openclaw.json, genererar en gateway-token och installerar tjänsten. Om systemctl --user klagar på bussen, sätt export XDG_RUNTIME_DIR=/run/user/$(id -u) och kör igen.
Lås sedan filerna. OpenClaws egen rekommendation är 700 på tillståndskatalogen och 600 på konfigurationen:
chmod 700 ~/.openclaw && chmod 600 ~/.openclaw/openclaw.json
openclaw security audit --deep
openclaw security audit --fix tillämpar den säkra delen av åtgärderna: strängare filrättigheter och tillåtelselistor i stället för öppna grupppolicyer. Den ändrar inte var gatewayen lyssnar och sätter ingen brandvägg; nätverksexponeringen är fortfarande ditt jobb.
4. Håll gatewayen på loopback
Gatewayen serverar sitt WebSocket-API och panelen på en enda port, 18789, bunden till 127.0.0.1 som standard. Låt den vara där. En minimal konfiguration som skriver ut det:
// ~/.openclaw/openclaw.json
{
gateway: {
mode: "local",
bind: "loopback",
port: 18789,
auth: { mode: "token", token: "paste-output-of-openssl-rand-hex-32" },
},
}
Generera token med openssl rand -hex 32 eller openclaw doctor --generate-gateway-token. Gatewayen vägrar tomma tokens och exempelvärdena, och granskningen varnar under 24 tecken.
Vad du inte ska göra: sätta bind till "lan" och öppna porten. Dokumentationen är rak: exponera aldrig gatewayen utan autentisering på 0.0.0.0, och vidarebefordra inte porten brett ens med token. Den som får tag på den token blir operatör för en process som kan köra kommandon på din server.
På brandväggssidan: tillåt SSH och inget annat.
# som root
ufw allow OpenSSH
ufw enable
ufw status verbose
På våra NAT-planer visar kontrollpanelen en extern SSH-port, men inne i servern lyssnar sshd fortfarande på 22. Tillåt OpenSSH (port 22), inte det externa portnumret, annars låser ufw enable ute dig. Mer i UFW-guiden.
5. Nå panelen via SSH
Öppna en tunnel från din laptop och låt den vara igång:
ssh -N -L 18789:127.0.0.1:18789 claw@<server>
# NAT-plan: ssh -N -p <din SSH-port> -L 18789:127.0.0.1:18789 claw@<host>
Öppna http://127.0.0.1:18789/ och klistra in gateway-token. Ubuntus standard-sshd tillåter lokal vidarebefordran; har du härdat den är AllowTcpForwarding local inställningen som tillåter -L men blockerar fjärrvidarebefordringar. Misslyckas tunneln med administratively prohibited är det den raden du ska kontrollera.
Ett tailnet fungerar också: Tailscale Serve håller gatewayen på loopback och sköter åtkomsten. Båda går bra. En publik port gör det inte.
6. Parkoppling, sandlåda och vem som får prata med den
Chattkanaler är den andra vägen in. Som standard måste okända avsändare i kanaler med direktmeddelanden parkoppla först; du godkänner från servern:
openclaw pairing approve <channel> <code>
Kräv omnämnande i grupper så att agenten inte svarar på varje meddelande i rummet. OpenClaws härdade grundkonfiguration använder dmPolicy: "pairing" och groups: { "*": { requireMention: true } } per kanal.
Två ärliga förbehåll. Ett: parkoppling styr vem som får starta en tur, inte vad som hamnar i modellens kontext; ett vidarebefordrat meddelande eller en hämtad webbsida kan fortfarande styra en tur som du startade. Två: verktyg i huvudsessionen körs på värden tills du slår på en sandlåda (agents.defaults.sandbox.mode: "non-main" sandlådar allt utom din egen huvudsession). Sandlådan är avstängd som standard och dess standardbackend är Docker, så installera Docker först om du slår på den: Docker på en VPS. Om personer du inte litar på delar en kanal med boten, använd en separat gateway, helst på en separat server.
7. Uppdateringar och säkerhetskopior
openclaw update
openclaw gateway status
openclaw backup create --output ~/backups/openclaw --verify
~/.openclaw innehåller konfigurationen, kanalernas inloggningsuppgifter (WhatsApp-sessionen inräknad), modellernas autentiseringsprofiler och sessionsutskrifter. Förlorar du den måste du parkoppla allt på nytt; läcker den är någon annan du på WhatsApp. Säkerhetskopiera och förvara kopian utanför servern: hämta den med scp eller använd restic med kryptering.
Checklista
| Kontroll | Kommando | Förväntat |
|---|---|---|
| Gatewayen körs inte som root | ps -eo user,args | grep '[o]penclaw' | claw i första kolumnen |
| Överlever utloggning | loginctl show-user claw -p Linger | Linger=yes |
| Lyssnar bara på loopback | ss -ltnp | grep 18789 | 127.0.0.1:18789 |
| Ingen publik port | ufw status | bara OpenSSH |
| Konfigurationen inte läsbar för alla | stat -c '%a' ~/.openclaw/openclaw.json | 600 |
| Ren granskning | openclaw security audit --deep | inga kritiska fynd |
Där EQVPS kommer in
Många leverantörer kan köra en Node-process. Vi lägger till kryptobetalning utan KYC, en NAT-plan som passar en gateway som bara lyssnar på loopback, och en MCP-server som din agent kan använda för att hantera sina egna servrar. Kopplar du OpenClaw till den, läs MCP-skyddsräcken först: en token som kan beställa servrar förtjänar samma omsorg som gateway-token. För en bredare bild av agenter på en VPS, se guiden för AI-agenter.
Vår åsikt: de här 20 minuterna är skillnaden mellan en assistent och ett öppet skal med chattgränssnitt. Gör åtminstone steg 1, 4 och 5, även om du hoppar över resten.
Kommentarer
Inga kommentarer än. Bli först.