Bir Ubuntu sunucuya yalnızca SSH ile bağlanmak yerine grafik masaüstü üzerinden de erişmek istiyorsan VNC en sık tercih edilen yöntemlerden biridir. Özellikle arayüz gerektiren uygulamalarda SSH tek başına yeterli olmaz.
VNC Nedir ve SSH’ten Farkı Nedir?
VNC, uzak makinelerin masaüstünü tam ekran şeklinde görüntülemeye ve kontrol etmeye yarayan bir erişim sistemidir. SSH yalnızca terminal erişimi sağlarken, VNC grafik arayüzle çalışma imkânı sunar. Bu iki yapı birlikte kullanıldığında hem güvenli hem de görsel erişim sağlanmış olur.
XFCE’nin Tercih Edilme Sebebi Nedir?
VNC ortamında kullanılan masaüstü arayüzünün stabil ve hızlı olması gerekir. XFCE, GNOME ve KDE’ye göre daha az RAM ve işlemci kullandığı için sunucu sistemlerinde daha verimli sonuç verir.

Ubuntu Sistemlerde XFCE Masaüstü Kurulumu
Kurulum öncesinde paket listelerinin güncel olması gerekir. Güncelleme işleminden sonra XFCE masaüstü ortamı ve temel bileşenler yüklenerek grafik arayüz hazır hale getirilir.
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.
vncpasswdVNC şifresi tanımlandıktan sonra sunucu bağlantı kabul edebilir duruma gelir. Ancak masaüstü ayarları yapılmazsa bağlantı sonrası siyah ekran sorunları yaşanabilir.
XFCE İçin VNC Xstartup Ayarı
VNC oturumu açıldığında hangi masaüstünün yükleneceğini ~/.vnc/xstartup dosyası belirler. XFCE’nin sorunsuz açılması için bu dosya özel olarak düzenlenmelidir. Düzenleme işleminden önce aktif bir VNC oturumu varsa kapatılması gerekir.
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.
VNC Bağlantısını SSH Tüneli ile Güvenceye Alma
VNC portlarını dış dünyaya açık bırakmak saldırılara davetiye çıkarır. SSH tüneli kullanılarak tüm VNC bağlantısı şifreli hale getirilebilir ve servis sadece yerel bağlantılar için aktif tutulur. Tünel bağlantısı şu komutla açılır.
ssh -L 59000:localhost:5901 -C -N -l KULLANICI_ADI SUNUCU_IPVNC 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/[email protected]İç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@1Sunucu 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 Termius SSH Aracı Linux Terminaline Nasıl Entegre Edilir 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.