Uzak bir Ubuntu sunucuya sadece SSH ile değil, tam bir grafik masaüstü ortamı üzerinden bağlanmak istiyorsan VNC en pratik çözümlerden biridir.
VNC Nedir ve SSH’ten Farkı Nedir?
VNC, uzak bir makinenin masaüstünü ağ üzerinden görüntülemeni ve yönetmeni sağlayan bir uzaktan erişim sistemidir. SSH servisleri yalnızca terminal erişimi sunarken, VNC grafik arayüzle tam masaüstü deneyimi sağlar.
SSH ve VNC genellikle birlikte kullanılır. SSH bağlantısı güvenli erişimi sağlarken, VNC bu bağlantı üzerinden masaüstü kontrolünü mümkün kılar.
Neden XFCE Tercih Edilir?
VNC ile kullanılacak masaüstü ortamlarının hafif, stabil ve düşük kaynak tüketimine sahip olması gerekir. XFCE bu noktada GNOME ve KDE gibi ağır masaüstü ortamlarına göre çok daha düşük sistem kaynağı kullanır.

Ubuntu Üzerinde XFCE Masaüstü Kurulumu
Kuruluma başlamadan önce sistem paketlerini güncelliyoruz. Ardından XFCE masaüstü ortamını ve temel bileşenlerini yüklüyoruz.
sudo apt update
sudo apt install xfce4 xfce4-goodies -yVNC Erişim Şifresi Oluşturma
VNC oturumuna bağlanırken istemciden bir şifre istenir. Bu şifreyi oluşturmak için bunu kullanalım.
vncpasswdŞifre oluşturulduktan sonra VNC sunucusu artık bağlantı kabul edebilecek duruma gelir ancak siyah ekran gibi sorunlarla karşılaşmamak için masaüstünün doğru şekilde yapılandırılması gerekir.
XFCE İçin VNC Xstartup Yapılandırması
VNC sunucusu açıldığında hangi masaüstü ortamını başlatacağını ~/.vnc/xstartup dosyası belirler. XFCE’nin düzgün açılması için bu dosyayı özelleştirelim.
Önce varsa çalışan bir VNC oturumunu kapatalım
vncserver -kill :1Mevcut xstartup dosyasını yedekleyelim
mv ~/.vnc/xstartup ~/.vnc/xstartup.bakYeni dosyayı oluşturalım
nano ~/.vnc/xstartupİçeriğe şunları ekleyelim
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &VNC Sunucusunu Başlatma ve Port Yapısı
Artık VNC sunucusunu başlatabiliriz
vncserverÖrnek bir çıktı şöyle olur
New 'X' desktop is yourhostname:1Bu çıktıdaki :1 ekran numarasıdır. VNC tarafında port hesaplaması şöyle yapılır:
:1→ 5901:2→ 5902:3→ 5903
Yani :1 için VNC portu:
5901İlk kurulumda hızlı test etmek için bu şekilde doğrudan VNC Viewer ile bağlanabilirsiniz.
SSH Tüneli ile Güvenli VNC Bağlantısı
VNC portlarını doğrudan internete açmak ciddi bir güvenlik riskidir. En güvenli yöntem, tüm VNC trafiğini SSH tüneli üzerinden geçirmek ve VNC’yi yalnızca localhost üzerinden çalıştırmaktır.
Linux sunucuda aşağıdaki komut ile tünel açılalım.
ssh -L 59000:localhost:5901 -C -N -l KULLANICI_ADI SUNUCU_IPGüvenlik Uyarısı!
VNC asla doğrudan internete açık çalıştırılmamalıdır. Root kullanıcı ile VNC servisi çalıştırmak önerilmez. SSH için mutlaka güçlü parola veya anahtar tabanlı kimlik doğrulama kullanılmalıdır. Fail2ban gibi ek güvenlik önlemleri aktif edilmelidir.
VNC’yi Systemd ile Otomatik Başlatma
Sunucu her yeniden başlatıldığında VNC’yi manuel çalıştırmamak için systemd servisi oluşturulur.
Servis dosyasını oluşturalım
sudo nano /etc/systemd/system/vncserver@.serviceİçeriği şu şekilde düzenleyelim
[Unit]
Description=Start VNC server at startup
After=syslog.target network.target
[Service]
Type=forking
User=sammy
Group=sammy
WorkingDirectory=/home/sammy
PIDFile=/home/sammy/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.targetSystemd’yi yenileyelim
sudo systemctl daemon-reload
sudo systemctl enable vncserver@1Varsa eski oturumu kapatalım.
vncserver -kill :1Servisi başlatalım ve kontrol edelim
sudo systemctl start vncserver@1
sudo systemctl status vncserver@1Ben Zaten SSH Kullanıyorum Diyorsak!
Sunucu reboot edildiğinde VNC systemd sayesinde otomatik olarak çalışır. Kullanıcı yalnızca SSH bağlantısını kurar, ardından kendi bilgisayarından SSH tünelini açarak VNC istemcisi ile localhost:59000 adresine bağlanır.
Eğer Linux kullanıyorsan, SSH bağlantını kolaylaştırmak için daha önce anlattığımız
Linux Kullanıcıları İçin Termius SSH İstemcisi Kurulumu rehberinden istemci tarafını hızlıca kurabilirsin.
Ayrıca sanallaştırma tarafında doğrudan fiziksel erişim yerine yönetim yapıyorsan,
aşağıdaki içeriğimiz üzerinden ESXi tarafında SSH erişimini güvenli şekilde aktif edebilirsin.
