Dizüstünde OpenClaw, kapak kapandığı anda susar: WhatsApp mesajları birikir, zamanlanmış işler sizin dönmenizi bekler. Sunucuda ise cevap vermeye devam eder. Sorun şu ki gateway bir sohbet widget'ı değil. Kanallarınızın kimlik bilgilerini tutar ve sandbox açmadığınız sürece araçları doğrudan sunucu üzerinde çalıştırır. Onu sürekli açık bir makineye taşımak, ancak güvenlik modeli de onunla birlikte taşınırsa mantıklı.
Bu rehber bunu yeni kurulmuş bir Ubuntu 24.04 VPS'te yaklaşık 20 dakikada yapıyor.
Son doğrulama 2026-10-04: OpenClaw 2026.9.8 (npm), Node 24.21 LTS ve Ubuntu 24.04.
Neye ihtiyacınız var
- Bir Linux VPS. Biz AI-Agent paketimizi kullanıyoruz: 4 vCPU, 4 GB RAM, 40 GB disk, aylık 10 $. OpenClaw belgeleri 6 GB RAM'den söz ediyor ama bu, Docker imajlarını kaynaktan derlemek için; npm paketi derleme gerektirmez.
- Model sağlayıcınızdan bir API anahtarı ve bağlamak istediğiniz mesajlaşma hesapları.
- Dizüstünüzde bir SSH anahtarı. Henüz yoksa: SSH anahtarıyla giriş.
Burada NAT paketi gayet uygun, hatta belki daha da uygun. Gateway'in hiçbir zaman açık bir gelen porta ihtiyacı yok: WhatsApp, Discord ve Telegram (varsayılan long polling) dışarıya bağlanır, panele de SSH ile ulaşırsınız. Özel IPv4'ü ancak ihtiyacınız olan bir kanal webhook ile teslim ediyorsa ya da herkese açık bir ters proxy planlıyorsanız alın.
1. Root olmayan bir kullanıcı
OpenClaw araçları gateway'in sahibi olan kullanıcıyla çalıştırır. Bu kullanıcı root ise, kafası karışmış ya da prompt injection ile yönlendirilmiş bir modelin çalıştırmaya karar verdiği her komut da root olarak çalışır. OpenClaw belgeleri gateway'i root olarak çalıştırmayı güvensiz ve desteklenmeyen bir yol olarak tanımlıyor. sudo yetkisi olmayan ayrı bir kullanıcı oluşturun:
# root olarak
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 # sipariş sırasında eklediğiniz anahtar
loginctl enable-linger claw
Son satır göründüğünden daha önemli. OpenClaw bir systemd kullanıcı servisi kurar ve lingering olmadan bu servis oturumu kapattığınızda durur. Sunucularda en sık duyulan "dün çalışıyordu" budur.
2. Node 24 ve OpenClaw
OpenClaw 2026.9.8, Node >=24.16.0 <25 veya >=26.1.0 istiyor. Ubuntu'nun kendi nodejs paketi daha eski, bu yüzden 24 LTS'yi NodeSource'tan alıyoruz:
# root olarak
curl -fsSL https://deb.nodesource.com/setup_24.x | bash -
apt install -y nodejs
node -v # v24.16.0 veya üstü
npm install -g openclaw@latest
openclaw --version
Resmî tek satırlık komut (curl -fsSL https://openclaw.ai/install.sh | bash) da çalışır ve Node'u sizin için kurar. Sunucuda iki açık adımı tercih ediyoruz: neyin nereye gittiğini görürsünüz ve ikili dosya, ajanın yazabildiği bir ev dizini yerine /usr/bin içinde durur.
3. Ajan kullanıcısıyla onboarding
claw olarak SSH ile giriş yapın, su ile değil. Servisin ihtiyaç duyduğu systemd kullanıcı yöneticisini yalnızca gerçek bir giriş başlatır:
# dizüstünden (NAT paketi: -p <SSH portunuz> ekleyin)
ssh claw@<server>
openclaw onboard --install-daemon
openclaw gateway status
Sihirbaz model erişimini kontrol eder, ~/.openclaw/openclaw.json dosyasını yazar, bir gateway token'ı üretir ve servisi kurar. systemctl --user bus'tan şikâyet ederse export XDG_RUNTIME_DIR=/run/user/$(id -u) ayarlayıp yeniden deneyin.
Ardından dosyaları kilitleyin. OpenClaw'un kendi önerisi durum dizini için 700, yapılandırma için 600:
chmod 700 ~/.openclaw && chmod 600 ~/.openclaw/openclaw.json
openclaw security audit --deep
openclaw security audit --fix düzeltmelerin güvenli kısmını uygular: daha sıkı dosya izinleri ve açık grup politikaları yerine izin listeleri. Dinleme adresini değiştirmez, güvenlik duvarı da kurmaz; ağa açıklık hâlâ sizin işiniz.
4. Gateway'i loopback'te tutun
Gateway, WebSocket API'sini ve paneli tek bir portta, 18789'da sunar ve varsayılan olarak 127.0.0.1'e bağlıdır. Öyle bırakın. Bunu açıkça yazan en küçük yapılandırma:
// ~/.openclaw/openclaw.json
{
gateway: {
mode: "local",
bind: "loopback",
port: 18789,
auth: { mode: "token", token: "paste-output-of-openssl-rand-hex-32" },
},
}
Token'ı openssl rand -hex 32 ya da openclaw doctor --generate-gateway-token ile üretin. Gateway boş token'ları ve örnek değerleri reddeder, denetim de 24 karakterin altında uyarı verir.
Yapmamanız gereken: bind değerini "lan" yapıp portu açmak. Belgeler bu konuda net: gateway'i asla kimlik doğrulaması olmadan 0.0.0.0 üzerinde açmayın ve token olsa bile portu geniş şekilde yönlendirmeyin. O token'ı ele geçiren kişi, sunucunuzda komut çalıştırabilen bir sürecin operatörü olur.
Güvenlik duvarı tarafında yalnızca SSH'a izin verin:
# root olarak
ufw allow OpenSSH
ufw enable
ufw status verbose
NAT paketlerimizde panel harici bir SSH portu gösterir, ama sunucunun içinde sshd hâlâ 22'de dinler. Harici port numarasına değil, OpenSSH'a (port 22) izin verin; yoksa ufw enable sizi dışarıda bırakır. Ayrıntılar UFW rehberinde.
5. Panele SSH ile ulaşın
Dizüstünüzden bir tünel açın ve açık bırakın:
ssh -N -L 18789:127.0.0.1:18789 claw@<server>
# NAT paketi: ssh -N -p <SSH portunuz> -L 18789:127.0.0.1:18789 claw@<host>
http://127.0.0.1:18789/ adresini açın ve gateway token'ını yapıştırın. Ubuntu'nun varsayılan sshd'si yerel yönlendirmeye izin verir; sıkılaştırdıysanız -L'ye izin verip uzak yönlendirmeleri engelleyen ayar AllowTcpForwarding local'dır. Tünel administratively prohibited hatasıyla düşerse bakmanız gereken satır budur.
Tailnet de işe yarar: Tailscale Serve gateway'i loopback'te tutar ve erişimi kendisi yönetir. İkisi de olur. Herkese açık bir port olmaz.
6. Eşleştirme, sandbox ve onunla kimin konuşabileceği
Sohbet kanalları ikinci giriş kapısıdır. Varsayılan olarak, doğrudan mesaj alan kanallar tanınmayan göndericileri önce eşleştirmeye zorlar; onayı sunucudan siz verirsiniz:
openclaw pairing approve <channel> <code>
Gruplarda ajanın odadaki her mesaja yanıt vermemesi için etiketleme şartı koyun. OpenClaw'un sıkılaştırılmış temel yapılandırması her kanal için dmPolicy: "pairing" ve groups: { "*": { requireMention: true } } kullanır.
İki dürüst uyarı. Birincisi: eşleştirme kimin bir turu başlatabileceğini belirler, modelin bağlamına neyin gireceğini değil; iletilmiş bir mesaj ya da çekilmiş bir web sayfası, sizin başlattığınız bir turu yine de yönlendirebilir. İkincisi: sandbox'ı açana kadar ana oturumun araçları sunucu üzerinde çalışır (agents.defaults.sandbox.mode: "non-main" kendi ana oturumunuz dışındaki her şeyi sandbox'a alır). Sandbox varsayılan olarak kapalıdır ve varsayılan arka ucu Docker'dır; açacaksanız önce Docker'ı kurun: VPS'te Docker. Güvenmediğiniz kişiler botla aynı kanalı paylaşıyorsa ayrı bir gateway kullanın, mümkünse ayrı bir sunucuda.
7. Güncellemeler ve yedekler
openclaw update
openclaw gateway status
openclaw backup create --output ~/backups/openclaw --verify
~/.openclaw yapılandırmayı, kanal kimlik bilgilerini (WhatsApp oturumu dahil), model kimlik doğrulama profillerini ve oturum dökümlerini tutar. Kaybederseniz her şeyi yeniden eşleştirmeniz gerekir; sızarsa WhatsApp'ta başkası siz olur. Yedek alın ve yedeği sunucunun dışında tutun: scp ile indirin ya da şifrelemeyle restic kullanın.
Kontrol listesi
| Kontrol | Komut | Beklenen |
|---|---|---|
| Gateway root olarak çalışmıyor | ps -eo user,args | grep '[o]penclaw' | ilk sütunda claw |
| Oturum kapanınca çalışmaya devam ediyor | loginctl show-user claw -p Linger | Linger=yes |
| Yalnızca loopback'te dinliyor | ss -ltnp | grep 18789 | 127.0.0.1:18789 |
| Herkese açık port yok | ufw status | yalnızca OpenSSH |
| Yapılandırma herkes tarafından okunamıyor | stat -c '%a' ~/.openclaw/openclaw.json | 600 |
| Temiz denetim | openclaw security audit --deep | kritik bulgu yok |
EQVPS'in yeri
Bir Node sürecini pek çok sağlayıcı çalıştırabilir. Bizim eklediğimiz: KYC olmadan kripto ödeme, yalnızca loopback'te dinleyen bir gateway'e uyan NAT paketi ve ajanınızın kendi sunucularını yönetmek için kullanabileceği bir MCP sunucusu. OpenClaw'u ona bağlayacaksanız önce MCP güvenlik sınırlarını okuyun: sunucu sipariş edebilen bir token, gateway token'ıyla aynı özeni hak eder. VPS'te ajanlara daha geniş bir bakış için yapay zekâ ajanı rehberine göz atın.
Görüşümüz: bu 20 dakika, bir asistan ile sohbet arayüzlü açık bir shell arasındaki farktır. Gerisini atlasanız bile 1, 4 ve 5. adımları yapın.
Yorumlar
Henüz yorum yok. İlk olun.