Ubuntu Minimal sunucularda grafik arayüzü (GUI) bulunmaz. Standart bir Chrome kurulumu yerine Docker kullanmak, sunucuyu gereksiz paketlerle yormadan, izole bir konteyner içinde yüksek performanslı bir tarayıcı çalıştırmamızı sağlar. KasmVNC teknolojisi ise bu görüntüyü web tarayıcınıza (HTTP/HTTPS) gecikmesiz ve şifreli olarak aktarır.
Temiz bir kurulum için önce sunucunuzu güncelleyin ve Docker motorunu kurun.
# Paket listesini güncelle ve sistemi yükselt
sudo apt update && sudo apt upgrade -y
# Docker kurulumunu otomatik betik ile başlat
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Minimal sunucular genellikle düşük RAM kapasitesine sahiptir. Chrome ise RAM canavarı bir uygulamadır. Sunucunuzun kilitlenmemesi için 2GB'lık bir takas alanı açalım:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfileecho '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstabŞimdi tek bir komutla Chrome'u, web arayüzünü ve şifreleme katmanını kuruyoruz.
docker run -d
--name=chrome-server
-p 3000:6901
--shm-size=2gb
-e VNC_PW=GUCLU_SIFRENIZ
-e KASM_USER=murat
--restart unless-stopped
kasmweb/chrome:1.15.0-p 3000:6901: Sunucunun 3000 portunu tarayıcı arayüzüne bağlar.
--shm-size=2gb: Chrome'un sekmelerinin çökmesini engeller.
VNC_PW: Giriş yaparken kullanacağınız şifre.
KASM_USER: Kullanıcı adınız.
Eğer sunucunuzda bir güvenlik duvarı varsa, 3000 portuna izin vermeniz gerekir. Dikkat: SSH (22) portunu açmayı unutmayın!
sudo apt install ufw -y
sudo ufw allow 22/tcp
sudo ufw allow 3000/tcp
sudo ufw enableDış dünyaya port açmak istemiyorsanız veya bağlantınızın tamamen şifreli olmasını istiyorsanız SSH tüneli en güvenli yoldur. Kendi bilgisayarınızın terminalinden şu komutu çalıştırın:
ssh -L 3000:127.0.0.1:3000 root@SUNUCU_IP_ADRESINIZBu komut açık kaldığı sürece, sunucudaki Chrome'a sanki kendi bilgisayarınızdaymış gibi erişebilirsiniz.
Bağlantı sağlandıktan sonra kendi bilgisayarınızdaki tarayıcıyı açın ve şu adrese gidin:https://localhost:3000 (Eğer tünel kullanmıyorsanız https://SUNUCU_IP:3000)
Kullanıcı Adı: murat (veya belirlediğiniz isim)
Şifre: VNC_PW kısmına yazdığınız şifre.
Chrome içinde Settings > Languages yolunu izleyin.
Turkish dilini ekleyin.
Yanındaki üç noktaya tıklayıp "Display Google Chrome in this language" seçeneğini işaretleyin. (Eğer çıkmazsa, makaledeki Docker komutuna dil paketlerini eklediğinizden emin olun).
Ekranın solundaki gri oka ( > ) tıklayın, Settings > Keyboard menüsünden Turkish düzenini seçin. Bu sayede "ğ, ş, ç, ı" gibi karakterleri sorunsuz kullanabilirsiniz.
1. Neden HTTPS uyarısı alıyorum?KasmVNC kendi kendine imzalı (self-signed) bir SSL sertifikası kullanır. Bu güvenlidir, "Gelişmiş" diyerek devam edebilirsiniz.
2. Ses gelmiyor, ne yapmalıyım?Sol menüdeki ses simgesine tıklayarak "Enable Sound" seçeneğini aktif edin.
3. Sunucum kasıyor, ne yapabilirim?Kasm kontrol panelinden (sol ok menüsü) "Streaming Quality" ayarını "Medium" veya "Low" seviyesine çekerek bant genişliği kullanımını azaltabilirsiniz.
Makalenin sonuna ekleyebileceğin, hem kullanıcı deneyimini iyileştiren hem de SEO değerini artıran kapsamlı "Olası Hatalar ve Çözümler" bölümü aşağıdadır. Bu bölüm, okuyucuların teknik bir sorunla karşılaştıklarında makaleni terk etmeden çözüm bulmalarını sağlar.
Kurulum sırasında veya sonrasında karşılaşabileceğiniz teknik aksaklıkları aşağıdaki adımlarla saniyeler içinde çözebilirsiniz:
Bu hata genellikle portların dış dünyaya kapalı olmasından veya servislerin henüz tam başlamamasından kaynaklanır.
Çözüm: Sunucu firmanızın (Hetzner, AWS, DigitalOcean vb.) web panelindeki Firewall ayarlarına girerek 3000 ve 3001 portlarına TCP izni verdiğinizden emin olun.
Çözüm 2: Sunucu içinde docker ps komutuyla konteynerin Up (çalışıyor) durumda olduğunu teyit edin.
Kasm arayüzünde kullanıcı adı veya şifreyi yazarken hata alıyorsanız;
Çözüm: Docker komutunda KASM_USER=murat olarak belirlediğiniz kullanıcı adını küçük harflerle yazdığınızdan emin olun.
Çözüm 2: Tarayıcı önbelleği (cache) eski bilgileri tutuyor olabilir. Tarayıcınızı gizli sekmede açarak veya CTRL + F5 yaparak tekrar deneyin.
Düşük RAM'li sunucularda Chrome görseli render edemeyebilir.
Çözüm: Makalenin başında anlattığımız Swap (Sanal Bellek) oluşturma adımını atlamayın.
Çözüm 2: Kasm sol menüsündeki ayarlar kısmından "Streaming Quality" seçeneğini Low veya Medium seviyesine çekerek CPU üzerindeki yükü azaltın.
SSH tüneli kurarken şifreniz reddediliyorsa;
Çözüm: Sunucunuzda root girişine izin verilmemiş olabilir. /etc/ssh/sshd_config dosyasında PermitRootLogin yes ayarının yapıldığından ve SSH servisinin yeniden başlatıldığından emin olun.
Çözüm 2: Sunucuda sudo passwd root komutuyla root kullanıcısına yeni bir şifre tanımlayarak tekrar deneyin.
Arayüz Türkçe olsa bile klavyeniz hala İngilizce düzeninde kalmış olabilir.
Çözüm: Ekranın solundaki gri ok işaretine tıklayın, Settings > Keyboard Layout yolunu izleyerek listeden Turkish seçeneğini aktif edin.
docker port boşsa)Eğer docker port chrome-server komutu bir sonuç vermiyorsa konteyner hatalı ağ ayarlarıyla başlamış olabilir.
Çözüm: Konteyneri silin ve komutu çalıştırırken --net=host yerine -p 3000:6901 parametresini kullandığınızdan emin olun. Bu, portların fiziksel makineye doğru şekilde köprülenmesini sağlar.
Yazarın Notu: Bu rehberdeki tüm adımları eksiksiz uyguladığınızda, kendi özel bulut tarayıcınızı en yüksek performansla kullanmaya başlayabilirsiniz. Takıldığınız yerleri yorumlar kısmında sormaktan çekinmeyin!
Bu kurulumu yaparken bizzat karşılaştığımız ve çözümüne ulaştığımız "ince" noktalar:
Hata: SSH tünel komutunu (ssh -L...) sunucunun kendi terminali içinde çalıştırmaya çalışmak.
Belirti: Permission denied veya şifre hataları.
Doğru Çözüm: SSH tünel komutu sunucuda değil, kendi bilgisayarınızdaki (Windows PowerShell/CMD) terminalde çalıştırılmalıdır. Köprü, evdeki bilgisayarınız ile sunucu arasında kurulur.
Hata: Sunucuda root şifresi belirlenmemişse (özellikle bulut sunucularda sadece SSH anahtarı varsa), SSH tüneli şifre sorma aşamasında kilitlenir.
Çözüm: Önce sunucuya bağlanıp sudo passwd root komutuyla bir şifre belirleyin, ardından tüneli bu şifreyle kurun.
Hata: lscr.io/linuxserver/webtop:amd64-google-chrome-latest gibi imajların bulunamaması.
Neden: Docker imaj etiketleri (tags) sürekli güncellenir veya isim değiştirir.
Çözüm: Hata alırsanız etiketi latest yerine spesifik bir sürümle (ubuntu-kde veya 1.15.0) değiştirin ya da doğrudan en stabil olan KasmWeb imajlarını kullanın.
Hata: docker port komutunu yazdığınızda hiçbir çıktı alamamak.
Neden: Konteynerin Bridge yerine Host ağında çalışması veya portların yanlış yönlendirilmesi.
Çözüm: Konteyneri kurarken -p 3000:6901 şeklinde iç portu (6901) dış porta (3000) mutlaka manuel olarak bağlayın.
Hata: Ayarlara girmenize rağmen "Display Google Chrome in this language" kutucuğunun görünmemesi.
Neden: Konteyner içindeki Ubuntu Minimal sürümünde Türkçe dil paketlerinin yüklü olmaması.
Çözüm: Konteyner içine docker exec ile girip language-pack-tr paketlerini kurun ve Chrome'u --lang=tr-TR parametresiyle başlamaya zorlayın.
Hata: curl veya tarayıcı ile bağlanırken bağlantının aniden kopması.
Neden: Sunucunun HTTP beklerken Docker'ın HTTPS (SSL) zorunlu tutması veya tam tersi.
Çözüm: Adres çubuğuna http yerine https://localhost:3000 yazarak (başına S ekleyerek) girmeyi deneyin.
Bu makale ile Ubuntu Minimal sunucunuzu güçlü, taşınabilir ve güvenli bir web tarayıcı istasyonuna dönüştürdünüz!
Teklif sayfamızdan alacağınız hizmetin teklif formunu doldurarak daha hızlı hizmet teklifi alabilirsiniz.
Sizde hemen teklif formunu doldurarak ne hizmeti almak istediğiniz detaylandırınız.