На ноутбуці OpenClaw замовкає, щойно закривається кришка: повідомлення у WhatsApp накопичуються, заплановані завдання чекають на вас. На сервері він і далі відповідає. Але є нюанс: шлюз — це не чат-віджет. Він зберігає доступи до ваших каналів і, якщо не ввімкнути пісочницю, запускає інструменти просто на хості. Переносити його на машину, що працює завжди, варто лише тоді, коли разом із ним переїжджає й модель безпеки.
Цей гайд робить це приблизно за 20 хвилин на свіжому VPS з Ubuntu 24.04.
Перевірено 2026-10-04: OpenClaw 2026.9.8 (npm), Node 24.21 LTS, Ubuntu 24.04.
Що знадобиться
- Linux VPS. Ми беремо наш тариф AI-Agent: 4 vCPU, 4 ГБ RAM, 40 ГБ диска, $10 на місяць. У документації OpenClaw згадано 6 ГБ RAM, але це для збирання їхнього Docker-образу з вихідних кодів; npm-пакету збирання не потрібне.
- API-ключ вашого провайдера моделей і акаунти месенджерів, які хочете підключити.
- SSH-ключ на ноутбуці. Якщо його ще немає: вхід за SSH-ключем.
NAT-тариф тут підходить, а може, навіть краще. Шлюзу взагалі не потрібен відкритий вхідний порт: WhatsApp, Discord і Telegram (за замовчуванням long polling) самі підключаються назовні, а до панелі ви ходите через SSH. Виділений IPv4 беріть, лише якщо потрібний канал доставляє повідомлення вебхуком або ви плануєте публічний reverse proxy.
1. Користувач, який не root
OpenClaw запускає інструменти від імені користувача, якому належить шлюз. Якщо це root, то від root виконається й будь-яка команда, яку вирішить запустити модель, що заплуталась або потрапила під prompt injection. Документація OpenClaw прямо називає запуск шлюзу від root небезпечним і непідтримуваним. Створіть окремого користувача без sudo:
# від 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 # ключ, доданий під час замовлення
loginctl enable-linger claw
Останній рядок важливіший, ніж здається. OpenClaw ставить користувацький сервіс systemd, і без lingering він зупиняється, коли ви виходите із сесії. Це найчастіше «вчора ж працювало» на серверах.
2. Node 24 і OpenClaw
OpenClaw 2026.9.8 вимагає Node >=24.16.0 <25 або >=26.1.0. Пакет nodejs з Ubuntu старіший, тому беремо 24 LTS з NodeSource:
# від root
curl -fsSL https://deb.nodesource.com/setup_24.x | bash -
apt install -y nodejs
node -v # v24.16.0 або новіша
npm install -g openclaw@latest
openclaw --version
Офіційна однорядкова команда (curl -fsSL https://openclaw.ai/install.sh | bash) теж працює і сама ставить Node. На сервері ми віддаємо перевагу двом явним крокам: видно, що куди лягає, а бінарник опиняється в /usr/bin, а не в домашньому каталозі, куди агент може писати.
3. Onboarding від імені агента
Заходьте як claw по SSH, а не через su. Лише справжній вхід піднімає користувацький менеджер systemd, потрібний сервісу:
# з ноутбука (NAT-тариф: додайте -p <ваш SSH-порт>)
ssh claw@<server>
openclaw onboard --install-daemon
openclaw gateway status
Майстер перевірить доступ до моделі, запише ~/.openclaw/openclaw.json, згенерує токен шлюзу і встановить сервіс. Якщо systemctl --user скаржиться на шину, виконайте export XDG_RUNTIME_DIR=/run/user/$(id -u) і повторіть.
Потім закрийте файли. Рекомендація самого OpenClaw — 700 на каталог стану і 600 на конфіг:
chmod 700 ~/.openclaw && chmod 600 ~/.openclaw/openclaw.json
openclaw security audit --deep
openclaw security audit --fix застосовує безпечну частину виправлень: посилює права на файли й замінює відкриті групові політики на allowlist. Нічого не перепривʼязує і не закриває файрволом — мережева доступність лишається вашою справою.
4. Тримайте шлюз на loopback
Шлюз віддає WebSocket API і панель на одному порту, 18789, за замовчуванням прив'язаному до 127.0.0.1. Так і залиште. Мінімальний конфіг, де це записано явно:
// ~/.openclaw/openclaw.json
{
gateway: {
mode: "local",
bind: "loopback",
port: 18789,
auth: { mode: "token", token: "paste-output-of-openssl-rand-hex-32" },
},
}
Токен згенеруйте через openssl rand -hex 32 або openclaw doctor --generate-gateway-token. Порожніх токенів і прикладів-заглушок шлюз не приймає, а аудит попереджає, якщо токен коротший за 24 символи.
Чого робити не треба: ставити bind у "lan" і відкривати порт. Документація каже прямо: ніколи не виставляйте шлюз без автентифікації на 0.0.0.0 і не прокидайте порт широко навіть із токеном. Той, хто отримає токен, стане оператором процесу, який уміє виконувати команди на вашому сервері.
Файрвол — лише SSH і більше нічого:
# від root
ufw allow OpenSSH
ufw enable
ufw status verbose
На наших NAT-тарифах кабінет показує зовнішній SSH-порт, але всередині сервера sshd і далі слухає 22. Дозволяйте OpenSSH (порт 22), а не номер зовнішнього порту, інакше ufw enable відріже вам доступ. Детальніше — у гайді з UFW.
5. Панель через SSH
З ноутбука відкрийте тунель і не закривайте його:
ssh -N -L 18789:127.0.0.1:18789 claw@<server>
# NAT-тариф: ssh -N -p <ваш SSH-порт> -L 18789:127.0.0.1:18789 claw@<host>
Відкрийте http://127.0.0.1:18789/ і вставте токен шлюзу. В Ubuntu sshd за замовчуванням дозволяє локальне прокидання; якщо ви його посилювали, AllowTcpForwarding local — саме те налаштування, що дозволяє -L і забороняє зворотні прокидання. Якщо тунель падає з administratively prohibited, перевіряйте цей рядок.
Підійде й tailnet: Tailscale Serve лишає шлюз на loopback і сам керує доступом. Обидва варіанти нормальні. Публічний порт — ні.
6. Pairing, пісочниця і хто може з ним говорити
Месенджери — другий вхід. За замовчуванням канали з особистими повідомленнями вимагають від незнайомих відправників pairing; схвалюєте ви на сервері:
openclaw pairing approve <channel> <code>
У групах вимагайте згадку, щоб агент не відповідав на кожне повідомлення в чаті. В еталонній захищеній конфігурації OpenClaw для кожного каналу стоять dmPolicy: "pairing" і groups: { "*": { requireMention: true } }.
Два чесні застереження. Перше: pairing вирішує, хто може запустити хід, але не що потрапить у контекст моделі. Переслане повідомлення чи завантажена вебсторінка все ще можуть спрямувати хід, який запустили ви. Друге: інструменти основної сесії виконуються на хості, доки ви не ввімкнете пісочницю (agents.defaults.sandbox.mode: "non-main" ізолює все, крім вашої основної сесії). За замовчуванням пісочниця вимкнена, а її стандартний бекенд — Docker, тож перед увімкненням поставте Docker: Docker на VPS. Якщо разом із ботом в одному каналі сидять люди, яким ви не довіряєте, підніміть для них окремий шлюз, краще на окремому сервері.
7. Оновлення і бекапи
openclaw update
openclaw gateway status
openclaw backup create --output ~/backups/openclaw --verify
У ~/.openclaw лежать конфіг, доступи до каналів (зокрема сесія WhatsApp), профілі авторизації моделей і розшифровки сесій. Втратите — доведеться все наново зв'язувати; витече — хтось інший стане вами у WhatsApp. Робіть бекапи й тримайте копію не на цьому сервері: завантажте через scp або використовуйте restic із шифруванням.
Чекліст
| Перевірка | Команда | Очікуємо |
|---|---|---|
| Шлюз працює не від root | ps -eo user,args | grep '[o]penclaw' | claw у першій колонці |
| Переживає вихід із сесії | loginctl show-user claw -p Linger | Linger=yes |
| Слухає лише loopback | ss -ltnp | grep 18789 | 127.0.0.1:18789 |
| Немає публічного порту | ufw status | лише OpenSSH |
| Конфіг не читається всіма | stat -c '%a' ~/.openclaw/openclaw.json | 600 |
| Аудит чистий | openclaw security audit --deep | немає критичних зауважень |
До чого тут EQVPS
Запустити Node-процес може багато хто. Ми додаємо оплату криптою без KYC, NAT-тариф, який саме пасує шлюзу лише на loopback, і MCP-сервер, через який агент може сам керувати своїми серверами. Якщо підключаєте до нього OpenClaw, спершу прочитайте захист MCP: токен, яким можна замовляти сервери, заслуговує тієї ж обережності, що й токен шлюзу. Ширше про агентів на VPS — у гайді з AI-агентів.
Наша думка: ці 20 хвилин — різниця між асистентом і відкритим shell із чат-інтерфейсом. Навіть якщо пропустите решту, зробіть кроки 1, 4 і 5.
Коментарі
Поки немає коментарів. Будьте першим.