
VNC ile Sunucu Bağlantısı: RFB Protokolü, Kurulum ve Güvenlik
VNC ve RFB protokol mimarisi, TigerVNC/TightVNC/RealVNC karşılaştırması, x11vnc ve Xvnc farkı, SSH tunnel ile güvenli erişim ve noVNC web tarayıcı istemcisi.
VNC ile Sunucu Bağlantısı: RFB Protokolü, Kurulum ve Güvenlik
Linux sysadmin'in araç çantasında SSH neredeyse her şeyi çözer. Ama bazen ihtiyacınız tam bir grafik masaüstüdür: GUI üzerinden bir veritabanı yöneticisini açmak, browser-based test yapmak, ML notebook'una grafik kütüphane ile bakmak veya bir desktop application'ı uzak sunucuda çalıştırıp ekranını lokal makinenize taşımak. Bu senaryolarda devreye giren protokol VNC (Virtual Network Computing) ve onun altında yatan RFB (Remote Framebuffer) protokolüdür.
Bu rehber VNC'yi yüzeyde "kur ve bağlan" tutoriali olarak değil; protokolün mimarisi, sunucu varyantları arasındaki farklar, güvenlik modeli, performans encoding'i ve gerçek üretim senaryosuyla bütüncül ele alıyor. Hedef kitle: Linux/Unix sunucu yöneten, VDS üzerinde grafik gereksinimi olan, ya da KVM web konsoluyla acil kurtarma yapması gereken sysadmin'ler.
VNC nedir? Kökeni ve felsefesi
VNC, Virtual Network Computing'in kısaltmasıdır. Olivetti & Oracle Research Laboratory (sonradan AT&T Laboratories Cambridge olarak anılan kuruluş) tarafından 1998–1999 yıllarında geliştirildi. 2002'de AT&T laboratuvarı kapandığında, projedeki çekirdek mühendisler İngiltere'de RealVNC Ltd. şirketini kurarak çalışmaya devam etti. Orijinal kod o dönemde GPL altında yayınlandığı için bugün gördüğümüz TightVNC, TigerVNC, UltraVNC gibi projeler hepsi aynı kökten dallanır.
VNC'nin felsefesi tek cümlede özetlenebilir: "Sunucunun framebuffer içeriğini ağ üzerinden istemciye akıt; istemciden gelen klavye-fare olaylarını sunucuya geri ilet." Bu yaklaşım çok düşük seviyelidir; protokol uygulama tipi ya da işletim sistemi hakkında neredeyse hiçbir varsayım yapmaz. Bir grafik arayüz ne kadar farklı olursa olsun (X11 + GNOME, X11 + XFCE, macOS Aqua, Windows GDI, hatta BIOS/boot ekranı) sonuçta bir piksel matrisidir; VNC onu olduğu gibi taşır. Bu OS-bağımsız çapraz uyumluluk VNC'yi RDP'den (Microsoft'a özel) ve SSH X11 forwarding'den (X protokolüne bağlı) ayıran temel özelliktir.
VNC vs RDP vs SSH X11 forwarding: hangisi ne için?
Üç protokol uzaktan erişim sağlar; ancak mimari yaklaşımları çok farklıdır.
RDP (Microsoft Remote Desktop Protocol): Windows-native, çizim primitif düzeyinde çalışır. "Şu dikdörtgeni çiz, şu yazıtipini render et" gibi yüksek seviyeli komutlar gönderir. Ağ trafiği VNC'den genelde çok daha verimlidir; çünkü ham piksel değil, "ne çizilmesi gerektiği" gönderilir. Windows Server yönetiminin standart yolu. (Detay için ID 16 RDP rehberimize bakın.)
SSH X11 forwarding: Sadece tek bir grafik uygulamanın penceresini istemciye iletir; tam masaüstü değil. ssh -X user@sunucu ile bağlanıp firefox yazdığınızda Firefox penceresi yerel ekranınızda açılır ama sunucuda çalışır. Yüksek gecikmeli bağlantılarda yavaştır; çünkü X protokolü ağ için tasarlanmamıştır. Yine de tek uygulama senaryosunda VNC'den daha hafiftir.
VNC (Virtual Network Computing): Ham framebuffer akıtır — piksel piksel sunucu ekranını istemciye yollar. RDP gibi semantik komut değil, "saf görüntü" taşır. Bu yüzden ağ kullanımı en yüksek olan üç seçenek arasındadır; ama buna karşılık tam OS-agnostic ve protokol seviyesinde en basit olanıdır. Sistem kurtarma, BIOS/boot ekranı erişimi, KVM hipervizör konsolu ve Linux GUI tam masaüstü senaryolarında ideal.
Pratik karar: Windows hedefi → RDP. Linux'ta sadece terminal → SSH. Linux'ta tam masaüstü veya tek seferlik GUI iş yükü → VNC. KVM hipervizör web konsol → VNC (noVNC arkada).
RFB protokol mimarisi
VNC'nin altında yatan protokol RFB (Remote Framebuffer) olarak adlandırılır ve RFC 6143 ile standartlaştırılmıştır. RFB hem zarif hem de oldukça eski tasarımlı bir protokoldür; basitliği uzun ömürlülüğünün anahtarıdır.
Framebuffer modeli
Sunucu, ekran içeriğini bir piksel matrisi olarak tutar; bu matrise framebuffer denir. İstemci bağlandığında sunucu mevcut framebuffer'ın bir kopyasını gönderir. Ardından değişiklikler artımlı (incremental) framebuffer update olarak iletilir: yalnızca değişen dikdörtgensel bölgeler ağda taşınır. Bu yaklaşım "Push" değil "Pull" tabanlıdır; istemci sürekli FramebufferUpdateRequest mesajı atar ve sunucu FramebufferUpdate ile cevap verir.
Port düzeni
VNC sunucusu 5900 + display number portunda dinler. Pratikte:
:0display → port 5900:1display → port 5901:2display → port 5902- ...
:5display → port 5905
Bir VDS üzerinde aynı anda birden fazla VNC oturumu çalıştırabilirsiniz; her biri farklı display ve farklı port kullanır. Java tabanlı web istemcileri için ayrıca 5800 + display portu (HTTP) eskiden yaygındı; modern dağıtımlar bu özellikten vazgeçti, yerine noVNC + websockify kombinasyonu kullanılır.
Authentication tipleri
RFB protokolü farklı kimlik doğrulama yöntemlerini destekler:
- None (1) — Hiçbir doğrulama yok. Sadece izole iç ağlarda anlamlı, üretimde asla kullanılmamalı.
- VNC Authentication (2) — Klasik DES challenge-response. Sadece ilk 8 karakter parola için kullanılır; geri kalan kısım yok sayılır. 2026 itibarıyla kriptografik olarak zayıf; modern saldırgan için ciddi engel değil.
- VeNCrypt (19) — TLS tabanlı şifreleme + alt-tip seçimi (sertifika tabanlı veya parola). Önerilen modern seçim, özellikle TigerVNC ile.
- TLS (18) — Sertifika doğrulamasız TLS sarmalama.
- RA2 / RA2ne — RealVNC'ye özgü RSA-AES tabanlı.
VNC native auth'un 8 karakter limiti çok bilinmeyen ama kritik bir zaafiyettir; MySuperSecretPassword2026 parolası aslında MySuperS olarak doğrulanır. Bu yüzden tek başına VNC auth'a güvenmek mümkün değildir; SSH tünel ya da VeNCrypt zorunludur.
Encoding tipleri
RFB framebuffer güncellemelerini farklı encoding stratejileriyle taşır. Her dikdörtgensel bölge bağımsız encode edilebilir:
- Raw — Sıkıştırma yok, ham piksel. LAN ortamında en hızlı, WAN'da kabus.
- CopyRect — "Bu bölge zaten ekranın şurasında var, oradan kopyala." Pencere taşıma senaryolarında müthiş.
- RRE / CoRRE — Rise-and-Run-length-Encoding. Düz renk bölgeleri için.
- Hextile — 16x16 piksel tile'lara böler, her tile'ı uygun yöntemle encode eder.
- ZRLE — Zlib + Run-length encoding. Modern dengeli seçim.
- Tight — En verimli; düz renk bölgelerinde JPEG, complex bölgelerde Zlib. TightVNC ve TigerVNC'nin imzası.
- TightPNG — Tight'ın PNG varyantı, lossless istenirse.
VNC istemcisi sunucuya kabul ettiği encoding listesini bildirir; sunucu uygun olanı seçer. Tight encoding 2026'da fiilen standart; çoğu modern istemci-sunucu kombinasyonu varsayılan Tight kullanır.
Pixel format
İstemci tercih ettiği piksel formatını sunucuya bildirir:
- bits-per-pixel (bpp): 8, 16, 32
- depth: gerçek renk derinliği (16, 24, 32)
- big-endian-flag: byte sıralaması
- true-colour-flag: gerçek renk vs palet
- red/green/blue-max ve red/green/blue-shift: kanal bit konumları
Düşük bant genişliği için bpp'yi 16'ya düşürmek anlamlıdır; renk kalitesi azalır ama veri yükü neredeyse yarıya iner.
VNC sunucu varyantları: hangisi nerede?
GPL'li orijinal VNC kaynağı bugün birçok aktif fork olarak yaşıyor. Hangisini seçeceğiniz işletim sistemi, lisans tercihi ve performans gereksinimine göre değişir.
RealVNC
Orijinal VNC ekibinin kurduğu RealVNC Ltd. şirketinin ürünüdür. Connect olarak markalanan ticari sürüm (eski adıyla VNC Server / VNC Viewer) Windows, Linux, macOS ve Raspberry Pi'de çalışır. Home (kişisel, ücretsiz, 5 cihaz limiti), Professional, ve Enterprise lisans katmanları bulunur. RealVNC kendi şifreleme protokolü RA2'yi kullanır ve cloud connectivity (bulut aracılığıyla NAT arkasındaki cihazlara erişim) sağlar. Resmi destek, ticari ürün; lisans bütçesi varsa en az drama'lı seçim.
TightVNC
GPL açık kaynak; Tight encoding'i icat eden ekibin projesidir. Windows ve Linux için sunucu/istemci. Düşük bant genişliğinde fark yaratan Tight + JPEG kombinasyonu bu projenin imzasıdır. Modern Windows'ta hâlâ aktif dağıtım; Linux tarafında ise TigerVNC tercih edilir hale geldi.
TigerVNC
TightVNC'nin Linux fork'u olarak başlayan, RHEL, Fedora, CentOS Stream, Rocky Linux ve AlmaLinux dağıtımlarının varsayılan VNC sunucusudur. Modern Xorg ve Wayland uyumu, VeNCrypt + TLS desteği, ve aktif geliştirme bu projeyi 2026 Linux dünyasının standardı haline getirdi. tigervnc-server veya tigervnc-standalone-server paket adlarıyla kurulur.
UltraVNC
Sadece Windows için. Dosya transferi, text chat, encryption plugin'i ve "mirror driver" gibi özelliklere sahip. Windows-only sysadmin'lerin yıllarca tercih ettiği proje; ama modern Windows 11 / Server 2025 uyumu için TightVNC veya RealVNC daha güvenli seçimler.
x11vnc
Bambaşka bir yaklaşım: varolan bir X session'ı paylaşır. Yani sunucuda fiziksel monitöre takılı X server'ın gördüğü ekranı kendi VNC sunucusu olarak yayınlar. Use case: bir Linux iş istasyonuna fiziksel olarak gidip oturum açtınız, ekranı evden uzaktan görmek istiyorsunuz. x11vnc -display :0 ile başlatılır; uzaktaki istemci aynı X masaüstüne bağlanır.
Xvnc (vncserver)
x11vnc'nin tersi: yeni, headless bir X session başlatır. Fiziksel monitöre bağlı değildir; tamamen sanal bir display ile ayrı bir masaüstü oturumu oluşturur. vncserver :1 komutu Xvnc'yi :1 display'inde başlatır. Sunucuda monitör yokken (tipik VDS senaryosu) bu yöntem kullanılır. TigerVNC paketinde gelen vncserver script'i arka planda Xvnc çalıştırır.
noVNC
Klasik VNC istemcilerinden farklı: HTML5 + WebSocket tabanlı bir web tarayıcı istemcisidir. Yani yerel makineye hiçbir uygulama kurmazsınız; bir web URL'sini açarsınız ve içinde Canvas üzerinde framebuffer çizilir. Arka planda websockify adlı proxy WebSocket trafiğini standart RFB TCP'sine çevirir. KVM hipervizör panellerinin web konsol özellikleri (Proxmox, OpenStack Horizon, ve Buyukweb VDS müşteri paneli dahil) neredeyse istisnasız noVNC tabanlıdır.
Kurulum: Ubuntu 22.04 + TigerVNC adım adım
VDS üzerinde TigerVNC ile temel bir VNC oturumu açalım.
Paketleri kur
sudo apt update
sudo apt install -y tigervnc-standalone-server tigervnc-xorg-extension
sudo apt install -y xfce4 xfce4-goodies dbus-x11
XFCE light bir desktop environment seçildi. GNOME ve KDE bir VNC oturumunda çok ağırdır; XFCE, MATE veya LXQt tercih edin. Headless VDS'de boş yere RAM yakmaya gerek yok.
Parola ata
vncpasswd
İki kez parola sorulur. Hatırlatma: VNC native auth ilk 8 karakter ile sınırlıdır; bu parola tek başına internete açık VNC'yi korumaz. SSH tünel kullanacağımız için yine de güçlü tutun.
İlk oturumu başlat
vncserver :1 -geometry 1280x720 -depth 24 -localhost yes
Önemli bayraklar:
:1→ display number, port 5901 olur.-geometry 1280x720→ çözünürlük. Hızlı bağlantıda 1920x1080 yapabilirsiniz.-depth 24→ 24-bit renk derinliği. Yavaş bağlantıda 16.-localhost yes→ kritik güvenlik: sadece 127.0.0.1'e bind olur, dışarıdan doğrudan erişilemez. SSH tüneli üzerinden erişeceğiz.
xstartup yapılandırma
vncserver ilk çalıştığında ~/.vnc/xstartup dosyasını oluşturur ama içeriğini sizin masaüstü ortamınıza göre düzenlemeniz gerekir. XFCE için:
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xrdb \$HOME/.Xresources
export XKL_XMODMAP_DISABLE=1
startxfce4 &
Sonra dosyayı executable yap:
chmod +x ~/.vnc/xstartup
Eğer bu dosya +x değilse VNC oturumu başlamaz veya boş gri ekran gösterir. En sık karşılaşılan sorunlardan biri budur.
Oturumu durdur / yeniden başlat
vncserver -kill :1
vncserver :1 -geometry 1280x720 -depth 24 -localhost yes
systemd ile kalıcı servis
VNC oturumunu sunucu yeniden başlatıldığında otomatik açılması için systemd servisi yazılır.
/etc/systemd/system/[email protected]:
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
User=kullanici
Group=kullanici
WorkingDirectory=/home/kullanici
PIDFile=/home/kullanici/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x720 -localhost yes :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
%i instance numarası display ID'sine karşılık gelir. Etkinleştirme:
sudo systemctl daemon-reload
sudo systemctl enable [email protected]
sudo systemctl start [email protected]
sudo systemctl status [email protected]
Birden fazla kullanıcı için her birine ayrı service instance açabilirsiniz: [email protected], [email protected]...
VNC istemcileri: hangi platformda ne kullanılır?
Linux: Remmina (GNOME), KRDC (KDE), Vinagre, TigerVNC viewer (vncviewer komutu). Remmina çoklu protokol desteği (VNC + RDP + SSH) ile bir İsviçre çakısı.
macOS: RealVNC Viewer App Store'da resmi olarak ücretsiz. Apple'ın built-in özelliği: Finder → "Go" → "Connect to Server" → vnc://sunucu_ip:5901 ile bağlanılabilir; bu özellik Screen Sharing uygulamasını çağırır. macOS native VNC istemcisi sınırlı encoding seti destekler; modern Tight için RealVNC Viewer veya TigerVNC viewer tercih edin.
Windows: TightVNC Viewer, RealVNC Viewer, UltraVNC Viewer. mstsc RDP'dir, VNC değildir; karıştırmayın.
Mobil: RealVNC Viewer iOS ve Android'de mevcut. Mobilden VNC uzun süreli yönetim için pratik değildir; touch ile masaüstü kontrolü zahmetli.
GÜVENLİK: VNC'nin en kritik kısmı
VNC native authentication zayıftır. Şifreleme yoktur (TLS/VeNCrypt eklemeden), parolanın 8 karakter limiti vardır, ve framebuffer trafiği düz metin akar (saldırgan ağ trafiğini dinlerse ekranınızı görebilir, klavye tuşlarınızı yakalayabilir).
Altın kural: SSH tunnel zorunlu
VNC'yi internete açık 5900-5905 portlarıyla asla kullanmayın. Doğru kullanım:
- Sunucu tarafında
vncserverher zaman-localhost yesile başlatılır → sadece 127.0.0.1'de dinler. - İstemci tarafında SSH tüneli kurulur:
ssh -L 5901:localhost:5901 kullanici@vds-ip-adresi
- İstemcide VNC viewer'ı
localhost:5901adresine bağlanır.
Bu yaklaşım VNC trafiğini SSH şifrelemesi içinde taşır. SSH'ın anahtar tabanlı auth'una güvenirsiniz; VNC parolası ek bir katman olarak kalır. Modern sysadmin pratiği budur.
VeNCrypt + TLS (ek katman)
TigerVNC, -SecurityTypes VeNCrypt,TLSVnc parametresiyle TLS şifrelemeyi yerel olarak yapabilir. Bu, SSH tüneli kullanmadan da kriptografik güvenlik sağlar. Sertifika dosyalarını -X509Cert ve -X509Key bayraklarıyla verirsiniz. Yine de SSH tüneli + VeNCrypt ikisi bir arada kullanılması en konservatif yaklaşımdır.
Firewall katmanı
UFW veya nftables ile 5900-5905 dış erişimi açıkça kapatın:
sudo ufw deny 5900:5905/tcp
sudo ufw allow OpenSSH
sudo ufw enable
-localhost yes zaten dışarı bind etmez; ama defense-in-depth prensibi gereği firewall kuralı yedeklemesi koyun.
VPN içinden VNC
Daha güçlü topolojide WireGuard veya OpenVPN tüneli kurulur; istemci VPN'e bağlanır, sonra VNC dahil tüm iç ağ trafiği VPN içinden geçer. VNC sunucusu sadece VPN arayüzüne bind edilebilir. Çok kullanıcılı ekiplerde tek SSH tünellerini yönetmek zorlaştığında VPN topoloji daha sürdürülebilirdir.
Brute force koruma
VNC, başarısız parola denemeleri için rate-limiting yapmaz. SSH tünel kullanırsanız bu zaten anlamsızlaşır (önce SSH'tan geçmek gerekir). Doğrudan VNC'yi (SSH tünel olmadan, VeNCrypt ile) açıyorsanız fail2ban ile vncserver log dosyasını izleyip IP banlama kuralı yazın.
noVNC: tarayıcıdan VNC
İstemci yüklemeden, sadece web tarayıcı ile VNC'ye erişmek istiyorsanız çözüm noVNC'dir. KVM hipervizör panellerinin web konsol özelliği bu teknolojiye dayanır.
Kurulum
sudo apt install -y novnc websockify
Çalıştırma
websockify --web=/usr/share/novnc/ 6080 localhost:5901
6080→ tarayıcının bağlanacağı HTTPS portulocalhost:5901→ arkadaki gerçek VNC sunucusu
Tarayıcıyı açın: http://vds-ip:6080/vnc.html → noVNC arayüzü Canvas üzerinde framebuffer'ı çizer.
SSL ile şifrele
Düz HTTP üzerinden VNC açmak yine eşdeğer şifresizliktir. Let's Encrypt sertifikasıyla TLS:
websockify \\
--web=/usr/share/novnc/ \\
--cert=/etc/letsencrypt/live/ornek.tr/fullchain.pem \\
--key=/etc/letsencrypt/live/ornek.tr/privkey.pem \\
6080 localhost:5901
Artık https://ornek.tr:6080/vnc.html üzerinden TLS şifreli erişim mümkün. Reverse proxy (Nginx) arkasına alıp 443 üzerinden /vnc path'iyle yayınlamak daha temiz mimari.
Authentication katmanı
noVNC + websockify default olarak VNC parolasını sorar; ama HTTP seviyesinde ek auth istiyorsanız Nginx Basic Auth veya OAuth proxy ekleyebilirsiniz. Cloudflare Tunnel kullanıyorsanız Zero Trust politikasıyla SSO entegrasyonu en konfor seçim.
Buyukweb VDS perspektifi: web konsol ve VNC
Buyukweb VDS müşteri panelindeki "Web Konsol" özelliği teknik olarak şu zincirden oluşur: KVM hipervizör (QEMU) → VNC sunucu → websockify proxy → noVNC istemci (tarayıcı). Yani siz panelden "Web Konsol" tıkladığınızda tarayıcınızda açılan canlı ekran aslında bir noVNC istemcisidir.
Bu mimari neyi mümkün kılar?
- Network erişim kaybı kurtarması: SSH'ı yanlış yapılandırıp dışlandığınızda, firewall kuralını bozduğunuzda, ya da network servisini kapattığınızda web konsol hâlâ çalışır. Çünkü VNC SSH ya da network'e bağlı değildir; KVM hipervizör seviyesinde çalışır.
- Boot loader erişimi: GRUB menüsünü görmek, single user mode'a düşmek, kernel parametresi eklemek için web konsol vazgeçilmezdir.
- Parola sıfırlama kurtarması: Root parolasını unuttunuz mu? Web konsoldan single user mode →
passwd→ reboot. - OS kurulum gözlemleme: Sunucuyu sıfırdan kurarken (custom ISO) ekranı görmek için.
VDS müşterileri ayrıca kendi VNC servislerini kurabilirler. Buyukweb VDS'lerde root erişim sınırsızdır; apt install tigervnc-standalone-server ile kendi VNC sunucunuzu kurup SSH tüneli üzerinden bağlanmanız serbesttir. Acil web konsol erişimi paneldedir; günlük GUI ihtiyacınız için ise kendi TigerVNC + SSH tunnel topolojinizi kurmanızı öneririz.
Performans tuning: yavaş bağlantıda VNC
WAN üzerinden VNC kullanıyorsanız ve istemci yanıt geç kalıyorsa şu ayarları sırayla deneyin.
Encoding ve sıkıştırma
İstemci tarafında (vncviewer veya Remmina ayarları):
- Tight encoding + JPEG quality 5-7 — denge noktası budur; quality 9 lossless ama ağır, quality 0 berbat kalite.
- CompressLevel 6-9 — Zlib sıkıştırma seviyesi.
-BetterCompress(Remmina) — TightVNC iyi sıkıştırma modu.
Renk derinliği
Hızlı bağlantı: 24-bit (full color). Yavaş bağlantı: 16-bit (-depth 16 ile vncserver başlat) → trafik %30-50 azalır, ama renk geçişlerinde band oluşur.
Çözünürlük
- 800x600: çok yavaş bağlantı (3G mobil).
- 1280x720: standart WAN, çoğu senaryo.
- 1920x1080: fast WAN veya LAN.
- 4K: sadece LAN, ciddi CPU/GPU yükü.
vncserver :1 -geometry 1280x720 ile başlangıçta belirleyin; sonradan değiştirmek için oturumu kapatıp tekrar açmak gerekir.
Desktop environment seçimi
GNOME ve KDE Plasma çok ağırdır (animasyon, compositing, transparent efektler). Bunun yerine:
- XFCE — denge noktası, çoğu VPS'te tercih edilir.
- MATE — eski GNOME 2 tarzı, hafif.
- LXQt / LXDE — en hafifi, RAM kısıtlı senaryoda.
- Openbox / IceWM — minimal window manager, sadece pencere yöneticisi.
Compositing'i kapatın: XFCE Settings → Window Manager Tweaks → Compositor → Enable kapalı.
Animasyon ve wallpaper
Wallpaper'ı düz renk yapın; arka planda fotoğraf büyük bir alan değişmesi olunca her renew'da kalın paket akar. Pencere animasyonlarını kapatın. "Tıkladığında dalgalanma" gibi efektler ağa bedeldir.
Sorun giderme: yaygın hatalar
"Failed to start [email protected]" — En sık sebep ~/.vnc/xstartup dosyasının executable olmaması. chmod +x ~/.vnc/xstartup ile düzeltin. systemd log'unu okuyun: journalctl -u [email protected] -n 50.
Boş gri ekran / sadece X cursor — Desktop environment kurulmamış veya xstartup script'i DE'yi başlatmıyor. apt install xfce4 ile XFCE kurun, xstartup'ta startxfce4 & satırı olduğundan emin olun.
"Connection refused" istemcide — VNC sunucu çalışmıyor veya yanlış port. ss -tlnp | grep 590 ile dinleyen portları listele. vncserver -kill :1 sonra vncserver :1 ile yeniden başlat.
"Authentication failure" — Yanlış parola veya ~/.vnc/passwd dosyası bozuk. vncpasswd ile yeniden ata. 8 karakter limitini unutmayın.
Klavye layout yanlış (TR Q yerine US) — XFCE açıldıktan sonra terminal'den setxkbmap tr ile Türkçe Q ata. Kalıcı için ~/.vnc/xstartup içine setxkbmap tr & satırı ekle.
Yavaş / takılan ekran — Encoding düşür (Raw yerine Tight), renk derinliği 16-bit'e indir, çözünürlüğü düşür, DE'yi XFCE'ye değiştir, compositor'u kapat. Tek tek dene; hangisi fark yaratıyor görerek.
Mouse imleci kaybolur / yanlış konumda — Bu RFB protokolünün eski bir sorunudur. -AlwaysShared veya istemci tarafında "Show local cursor" seçeneğini deneyin. TigerVNC viewer'da "Cursor settings" menüsü vardır.
A VNC server is already running as :1 — Önceki oturum temizlenmemiş. vncserver -kill :1 çalışmıyorsa rm /tmp/.X1-lock /tmp/.X11-unix/X1 ~/.vnc/*.pid ile manuel temizleyip tekrar dene.
VNC alternatifleri 2026
VNC'ye benzer iş yapan başka projeler vardır; her birinin avantajı farklıdır.
- NoMachine NX — Proprietary ama ücretsiz home sürümü olan, çok yüksek performanslı protokol. NX protokolü VNC'den 5-10x daha az bant genişliği kullanır; özellikle yavaş bağlantılarda etkileyici. Linux ve macOS için sunucu/istemci mevcut.
- Apache Guacamole — HTML5 + Java tabanlı clientless uzak masaüstü gateway. VNC, RDP ve SSH'ı tek web arayüzde toplar. Reverse proxy şeklinde kurulur; arka planda her bağlantı için ilgili protokol konuşur. Çok kullanıcılı ortamlarda tek giriş noktası mantığıyla harika.
- xrdp — Linux'a Windows RDP istemcileriyle bağlanma çözümü.
xrdpLinux üzerinde RDP sunucu rolü oynar;mstscile Linux masaüstüne girersiniz. VNC alternatifi olarak Windows kullanıcısı sysadmin'lerin pratik tercihi. - WebRTC + waypipe — Modern Wayland masaüstü için experimental:
waypipeWayland uygulamalarını SSH üzerinde tunnel'lar (X11 forward'ın Wayland karşılığı). WebRTC üzerinde browser'a yansıtmak ileri düzey deneme.
VNC'nin yerini tamamen alacak bir protokol henüz çıkmadı; çünkü VNC'nin en büyük avantajı sadelik ve OS bağımsızlığıdır. Performans gereksinimi öne çıkarsa NX veya RDP'ye, web tabanlı clientless istenirse Guacamole'ye veya noVNC'ye geçilir.
Buyukweb VDS senaryosu: VNC ne zaman gerek?
Headless Linux sunucuda günlük yönetim için SSH yeterlidir. VNC ihtiyacı şu senaryolarda doğar:
- GUI tabanlı browser test: Selenium, Playwright headless çalıştırılabilir ama interaktif testler için bazen GUI gerekir.
- GUI veritabanı yöneticileri: pgAdmin, MySQL Workbench gibi araçların local çalıştırılması zor olduğunda sunucuda VNC ile.
- ML notebook gözlem: Jupyter web arayüzü yeterli olmadığında, görsel kütüphane debug.
- CAD veya tasarım uygulamaları: Sunucu tarafında render, lokal'de görüntüleme.
- Boot kurtarma: Buyukweb panelindeki web konsol bu kategori (zaten noVNC).
- Çoklu kullanıcı GUI ortamı: Eğitim, terminal odası senaryoları.
Eğer sunucunuz sadece web servisi sunuyorsa (Nginx + PHP + MySQL) VNC kurmaya gerek yoktur; SSH yeterli. VNC RAM ve CPU yükü getirir; gerek yokken kurmak gerek yok.
Sıkça Sorulan Sorular
VNC ile RDP arasında ne fark var?
RDP, Microsoft'a özel ve Windows-native bir protokoldür; çizim primitif düzeyinde çalışır ve genellikle VNC'den daha az bant genişliği kullanır. VNC ise OS-bağımsız bir framebuffer protokolüdür (RFB); herhangi bir ekranı piksel olarak akıtır. Windows sunucu yönetiminde RDP, Linux GUI ve KVM web konsolda VNC tercih edilir. Performans gereksinimi çok kritikse RDP, OS bağımsızlığı önemliyse VNC.
VNC native parolası neden 8 karakter sınırlı?
RFB protokolünün klasik VNC Authentication tipi DES tabanlıdır ve 8 karakterlik bir anahtar kullanır. Daha uzun parola girerseniz ilk 8 karakter doğrulamaya gider, kalanı yok sayılır. Bu 1990'ların kriptografisidir ve 2026 itibarıyla zayıftır. Bu yüzden VNC'yi internete açık 5900-5905 portlarıyla kesinlikle kullanmayın; SSH tüneli veya VeNCrypt + TLS zorunludur.
VNC sunucusunu güvenli kullanmanın altın kuralı nedir?
vncserver her zaman -localhost yes ile başlatılır (sadece 127.0.0.1'e bind). İstemci tarafında ssh -L 5901:localhost:5901 user@vds-ip SSH tüneli kurulur. VNC viewer localhost:5901 adresine bağlanır. Bu modelde VNC trafiği SSH'ın AES şifrelemesi içinde taşınır; native VNC auth'un zayıflığı sorun olmaktan çıkar. Firewall katmanında 5900-5905 dış erişimi de açıkça kapatın (defense-in-depth).
x11vnc ile Xvnc (vncserver) arasındaki fark nedir?
x11vnc mevcut bir X session'ı paylaşır — fiziksel monitöre veya açık olan masaüstü oturumuna yapılan istemcileri bağlar. Use case: fiziksel olarak oturum açtınız ve evden o ekranı görmek istiyorsunuz. Xvnc (vncserver script'i) ise tamamen yeni, headless bir X session başlatır — fiziksel monitör yokken sıfırdan sanal masaüstü oluşturur. Tipik VDS senaryosunda monitör fiziksel olmadığı için Xvnc kullanılır.
noVNC web tarayıcı istemcisi nasıl çalışır?
noVNC, HTML5 Canvas ve WebSocket teknolojileri ile tarayıcıda VNC istemcisi oluşturur. Tarayıcı doğrudan RFB konuşamaz (TCP soket erişimi yok); araya websockify adlı proxy girer ve WebSocket trafiğini standart RFB TCP'sine dönüştürür. websockify --web=/usr/share/novnc/ 6080 localhost:5901 komutu tarayıcıya HTML servisi verirken arkada VNC bağlantısını tünelliyor. KVM hipervizör panellerinin web konsolları (Buyukweb VDS dahil) bu tekniğe dayanır.
VNC, basit ve OS-bağımsız bir protokol olarak Linux sunucu yöneticisinin grafik arayüz ihtiyacını çözer; ama altındaki RFB protokolünün eski güvenlik modeli (zayıf auth, şifresiz trafik) modern internet ortamında yetersizdir. Doğru kullanım her zaman SSH tünel veya VPN içinden geçer; VNC parolası tek başına yeterli koruma değildir. KVM web konsolu, GUI uygulama erişimi, boot kurtarma ve cross-platform sanal masaüstü senaryolarında VNC vazgeçilmez bir araç olmaya devam ediyor.
İlgili Buyukweb Hizmetleri
VNC ve uzak masaüstü erişim senaryoları için:
- VDS Sunucu — KVM tabanlı, root erişim, web konsol (noVNC) panelde dahil
- Paket Karşılaştırma — VDS ve hosting paketlerinin karşılaştırması
- Fiziksel Dedicated Sunucu — Tam donanım kontrolü, IPMI konsol
- GPU Sunucu — Görsel iş yükleri için GPU destekli VDS
- Nested VDS — Sanallaştırma içinde sanallaştırma
Teknik sorularınız için 0850 302 60 70 veya iletişim sayfası. Bursa Tier 3 veri merkezi, 17 yıllık altyapı tecrübesi, 7/24 Türkçe destek.
Sunucu Yönetimi İlgili Hizmetlerimiz
Bu yazıda anlatılan teknik konuyu profesyonel altyapıyla deneyimleyin
Etiketler:

