Bazı işler grafik arayüzle daha kolaydır: uzak bir makinede tarayıcı, arayüzlü bir araç ya da masaüstü uygulaması çalıştırmak gibi. XFCE küçük bir sunucu için yeterince hafiftir ve TigerVNC onu kendi bilgisayarınızdan görmenizi sağlar. Bu rehber, VNC portunu hiçbir zaman internete açmadan, yalnızca bir SSH tüneliyle erişilecek şekilde bir VPS Linux Infrawire üzerinde kurulumu anlatır.
📋 Ön koşullar
- Ubuntu 24.04 veya Debian 12 çalıştıran, root SSH erişimi olan bir VPS (müşteri alanınızdan VPS'in IP adresini ve root parolasını bulabilirsiniz).
- Rahat bir masaüstü için en az 2 GB RAM.
- Bilgisayarınızda bir SSH istemcisi ve bir VNC görüntüleyici (RealVNC Viewer veya TigerVNC Viewer).
- Normal bir kullanıcı hesabı: masaüstünü root olarak çalıştırmayın.
📦 XFCE ve TigerVNC kurulumu
Sistemi güncelleyin, ardından masaüstünü ve sunucuyu kurun. dbus-x11, sık görülen gri ekran sorununu önler.
Bashapt update && apt upgrade -y apt install -y xfce4 xfce4-goodies tigervnc-standalone-server tigervnc-common dbus-x11
Henüz yoksa özel bir kullanıcı oluşturun:
Bashadduser USER usermod -aG sudo USER
🔑 VNC parolasını ve oturumu ayarlama
Bu kullanıcıya geçin ve VNC parolasını belirleyin (en fazla 8 karakter anlamlıdır):
Bashsu - USER vncpasswd
Yalnızca görüntüleme parolası sorusuna n yanıtını verin. Ardından TigerVNC'ye XFCE'yi başlatmasını söyleyin:
Bashmkdir -p ~/.vnc cat > ~/.vnc/xstartup <<'EOF' #!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS exec startxfce4 EOF chmod +x ~/.vnc/xstartup
Yalnızca localhost'u dinleyerek elle deneyin:
Bashvncserver :1 -localhost yes -geometry 1920x1080 -depth 24 vncserver -list vncserver -kill :1
⚙️ systemd ile otomatik başlatma
Tekrar root olarak, kullanıcınız için oturumu çalıştıran bir unit oluşturun. :1 ekranı TCP 5901 portuna karşılık gelir.
INI1# /etc/systemd/system/vncserver@.service 2[Unit] 3Description=TigerVNC server on display %i 4After=network.target 5 6[Service] 7Type=forking 8User=USER 9Group=USER 10WorkingDirectory=/home/USER 11PIDFile=/home/USER/.vnc/%H:%i.pid 12ExecStartPre=-/usr/bin/vncserver -kill :%i 13ExecStart=/usr/bin/vncserver :%i -localhost yes -geometry 1920x1080 -depth 24 14ExecStop=/usr/bin/vncserver -kill :%i 15 16[Install] 17WantedBy=multi-user.target
Bashsystemctl daemon-reload systemctl enable --now vncserver@1.service systemctl status vncserver@1.service
İkinci bir kullanıcı için unit dosyasını başka bir adla, o kullanıcı ve :2 ekranıyla (port 5902) kopyalayın.
🔒 SSH tüneliyle bağlanma
-localhost yes seçeneği VNC'nin yalnızca 127.0.0.1 üzerinde dinlemesini sağlar; dışarıdan hiçbir şeye erişilemez. Kendi bilgisayarınızdan bir tünel açın:
Bashssh -N -L 5901:localhost:5901 USER@VPS_IP
Bu pencereyi açık bırakın. VNC görüntüleyicinizde localhost:5901 adresine bağlanın ve VNC parolasını girin. Aynı komut Windows PowerShell'de ve macOS Terminal'de de çalışır. 5901 portunu hiçbir güvenlik duvarında açmayın.
✅ Doğrulama
VPS üzerinde VNC'nin yalnızca geri döngü adresinde dinlediğini doğrulayın:
Bashss -tlnp | grep 5901 systemctl is-active vncserver@1.service
0.0.0.0:5901 değil, 127.0.0.1:5901 görmelisiniz. Bilgisayarınızda tünel açıkken görüntüleyici XFCE masaüstünü göstermelidir.
🛠️ Sorun giderme
Gri ekran veya masaüstü yok. ~/.vnc/xstartup dosyasının çalıştırılabilir olduğunu ve dbus-x11 paketinin kurulu olduğunu kontrol edin, günlüğü cat ~/.vnc/*.log ile okuyun. En sık neden exec startxfce4 satırının eksik olmasıdır.
"A VNC server is already running as :1". Eski bir kilit kalmış. vncserver -kill :1 çalıştırın, sürerse /tmp/.X1-lock ve /tmp/.X11-unix/X1 dosyalarını silin ve servisi yeniden başlatın.
Tünel bağlantıyı reddediyor. Servis büyük olasılıkla durmuştur: systemctl status vncserver@1.service komutuna bakın. Ayrıca bilgisayarınızda yerel 5901 portunun zaten kullanılmadığından emin olun veya -L 5999:localhost:5901 gibi başka bir port seçin.
🎉 VPS'iniz artık yalnızca SSH tüneliniz üzerinden erişilebilen özel bir XFCE masaüstü sunuyor.