Sanal Ağ Bilgi İşlem (VNC), grafiksel kullanıcı arayüzlerine uzaktan erişmek için kullanılan bir ekran paylaşım sistemidir. Bir sunucunun (kullanıcı tarafı) başka bir tarafa (istemci) bağlanmasına izin veren uzak çerçeve arabelleği protokolünü kullanır. VNC güvenlidir, emniyetlidir ve tüm işletim sistemlerinde çalışır.
RealVNC, UltraVNC, Xfce, TightVNC, sadece birkaçını saymak gerekirse, günümüzde kullanılan en popüler VNC istemcileridir. Mevcut alternatifler listesinden, dilediğiniz VNC'yi seçmekte özgürsünüz. Bu eğitimde, Ubuntu 20.04 üzerinde VNC kurulumu ve yapılandırması adımlarında size rehberlik edeceğiz. Xfce'i hızı, hafifliği ve mükemmel performansı nedeniyle kuracağız.
Bir Ubuntu sunucusunda VNC sunucusu kurarak ve SSH tüneli üzerinden güvenli bir bağlantı oluşturarak başlayacağız. Son olarak, grafiksel bir masaüstü ortamı aracılığıyla sunucuyla etkileşime girmek için yerel makinemizde bir VNC istemci programı kullanacağız.
Gereksinimler
Bu eğitimi takip etmek için şunlara ihtiyacınız olacak:
-
Bir Ubuntu 20.04 sunucusu (root olmayan bir kullanıcıya sahip) ve bir basit güvenlik duvarı (UFW).
-
Üzerinde VNC istemcisi kurulu olan yerel bir bilgisayar. Ayrıca, kullanacağımız VNC istemcisi SSH üzerinden bağlanır tünelleri.
Adım 1— Masaüstü Ortamını ve VNC Sunucusunu Kurun
Önceki Ubuntu sürümlerinin aksine, Ubuntu 20.04 önceden kurulmuş bir VNC ile gelmez. İlk adım olarak, resmi Ubuntu deposundan gerekli paketleri kuracağız. Devam etmeden önce, mevcut paketleri güncelleyelim:
|
1 |
sudo apt update |
Şimdi şu komutu kullanarak Xfce ve xfce4-goodies paketini kuracağız:
|
1 |
sudo apt install xfce4 xfce4-goodies |
Paketiniz kurulurken, Xfce için varsayılan bir ekran yöneticisi seçmenizi isteyen bir ekran göreceksiniz. Mesajı yoksayın veya varsayılan olarak ayarlayın ve ardından tuşuna basın.ENTER.
Ekran yöneticisi, kullanıcıların grafiksel bir arayüz aracılığıyla bir masaüstü ortamında oturum açmasını sağlayan bir programdır. Bu eğitimde, root olmayan bir Ubuntu kullanıcısı olarak oturum açtığımız bir VNC istemcisiyle bağlanırken Xfce kullanacağız. Bu nedenle, ekran yöneticisi seçiminin kurulumumuz üzerinde herhangi bir etkisi olmayacaktır.
Xfce kurulumundan sonra TightVNC sunucusunu kuracağız:
|
1 |
sudo apt install tightvncserver |
Bir sonraki adımda, bir VNC erişim şifresi ayarlamak ve ilk yapılandırma dosyalarını oluşturmak için vncserver komutunu kullanın. VNC sunucusu örneğini başlatmak için aşağıdakileri yazın:
|
1 |
vncserver |
Bundan sonra, 6-8 karakter uzunluğunda bir şifre belirleyin ve ENTER tuşuna basın. Bir istem mesajı göreceksiniz:
|
1 2 3 4 5 |
Output Masaüstlerinize erişmek için bir şifreye ihtiyacınız olacaktıryour desktops. Şifre: Doğrula: |
Gelecekte şifrenizi değiştirmek veya yalnızca görüntüleme amaçlı bir şifre eklemek isterseniz, şu komutu kullanın:
|
1 |
vncpasswd |
Şu ana kadar, sunucu için tüm varsayılan yapılandırmaları oluşturmuş olacaksınız ve bir ekran bağlantı noktası olan 5901 olarak başlatılacaktır. VNC, :1 gibi diğer ekran bağlantı noktalarında birden fazla örnek başlatabilir; burada :2, :3 ve :4 sırasıyla 5902, 5903 ve 5904 bağlantı noktalarını belirtir:
|
1 2 3 4 5 6 7 8 9 |
Output Yalnızca görüntüleme amaçlı bir şifre girmek ister -misiniz? (y/n)? n xauth: dosyası /home/cloudsigma/.Xauthority mevcut değil exist Yeni 'X' masaüstü şu your_hostname:1 Oluşturuluyor varsayılan başlangıç betiği /home/cloudsigma/.vnc/xstartup Başlatılıyor uygulamalar belirtilen içinde /home/cloudsigma/.vnc/xstartup Günlük dosyası şudur /home/cloudsigma/.vnc/your_hostname:1.log |
VNC sunucunuz artık kuruldu ve başarıyla çalışıyor. Bir sonraki adımda, grafik arayüz üzerinden erişim sağlamak için sunucuyu Xfce’yi başlatacak şekilde yapılandıralım.
Adım 2— VNC Sunucusunu Yapılandırma
Home dizini altında, .vnc klasörünü bulacaksınız; bu klasör, startup olarak adlandırılan tüm yapılandırma dosyalarını içerir. Başlangıçta, vncserver içinde Adım-1. Başlangıç betiği, önceki adımda vncserver komutunu çalıştırdığınızda oluşturulmuştu. Ancak şimdi Xfce masaüstünü başlatmak için kendi betiğinizi oluşturacaksınız. VNC yapılandırması değişeceği için Xfce masaüstünü başlatmak üzere kendi sunucumuzu da oluşturmamız gerekecek.
Daha fazla ilerlemeden önce, şu portta çalışan VNC sunucu örneğini durdurmamız gerekiyor: 5901:
|
1 |
vncserver -kill :1 |
Şu çıktıyı göreceksiniz:
|
1 2 |
Çıktı Durduruluyor Xtightvnc işlemi ID 17648 nano ~/.vnc/xstartup |
Şunun yerine: 17648, farklı bir numara alabilirsiniz ve bu sorun değil. Sırada, xstartup dosyasını düzenleyeceğiz. Herhangi bir dosya değişikliği yapmadan önce orijinal dosyayı yedekleyelim:
|
1 |
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak |
Ardından, yeni bir xstartup dosyası oluşturun ve bunu herhangi bir metin düzenleyicide açın. Bu öğreticide, kullanıyoruz:nano:
|
1 |
nano ~/.vnc/xstartup |
İşlem tamamlandığında, dosyaya aşağıdaki satırları ekleyin:
|
1 2 3 |
#!/bin/bash xrdb $HOME/.Xresources startxfce4 & |
VNC sunucusunu her başlattığınızda veya yeniden başlattığınızda, bu komutlar otomatik olarak yürütülür. İlk satır, Shebang satırıdır ve sisteme, yürütülmesi için ~/.vnc/xstartup dosyasının hangi yorumlayıcıya aktarılacağı bilgisini verir. Bir sonraki satır olan xrdb $HOME/. Xresources, VNC’nin GUI çerçevesine sunucu kullanıcısının Xresources dosyasını okumasını söyler. Son olarak, son satır sunucudan Xfce’yi başlatmasını ister. Bu satırları ekledikten sonra dosyayı kaydedip kapatın.
VNC sunucusunun yeni başlangıç dosyasını kullanabilmesi için dosyayı yürütülebilir hale getirmemiz gerekir:
|
1 |
chmod +x ~/.vnc/xstartup |
Ardından, VNC sunucusunu yeniden başlatın:
|
1 |
vncserver -localhost |
Artık burada eklenmiş -localhost seçeneğine sahip olacaksınız. Localhost, VNC sunucusunu sunucunuzun geri döngü (loopback) arayüzüne bağlayarak yalnızca kurulu sunuculardan gelen bağlantılara izin verir. Sırada, yerel makinemiz ile sunucu arasında bir SSH tüneli kuracağız. Amaç, VNC çevresine ekstra bir güvenlik katmanı eklemektir. Neden mi? Çünkü erişimi olacak kullanıcılar, sunucuya zaten SSH erişimi olan kullanıcılar olacaktır.
Aşağıdaki çıktıyı göreceksiniz:
|
1 2 3 4 |
Yeni 'X' masaüstü şudur your_hostname:1 Başlatılıyor uygulamalar belirtilen içinde /home/sammy/.vnc/xstartup Günlük dosyası şudur /home/cloudsigma/.vnc/your_hostname:1.log |
Yapılandırma ayarlandıktan sonra, yerel makinemizden VNC sunucusuna bağlanmaya hazırız.
Adım 3— VNC Masaüstüne Güvenli Bir Şekilde Bağlanma
Sunucuya bağlanırken VNC güvenli protokoller kullanmaz. Bu nedenle, bir SSH tüneli kurmamız ve VNC istemcisinin kendi başına doğrudan bir bağlantı kurmasına izin vermek yerine tüneli kullanarak bağlantı kurmasını istememiz gerekir.
Yerel bilgisayarımızda, ssh komutunu kullanarak, localhost bağlantısına yönlendiren bir SSH bağlantısı oluşturacağız. Bir SSH bağlantısı oluşturmak için terminaldeki komutu kullanın:
|
1 |
ssh -L 59000:localhost:5901 -C -N -l cloudsigma your_server_ip |
Yukarıdaki kodu çözelim:
-
-L 59000:localhost:5901: -L parametresi, yerel bilgisayardaki belirtilen portun ( 59000) hedef sunucudaki belirtilen ana bilgisayara ve porta ( localhost:5901) gideceğini belirtir. Bu, portunun5901 hedef sunucuda şu şekilde tanımlanacaktır: your_server_ip). Belirttiğiniz yerel port isteğe bağlıdır. Port başka bir hizmete atanmadığı sürece, tüneliniz için yönlendirme portu olarak kullanmakta özgürsünüz.
-
-C: Kaynak tüketimini daha da azaltmaya ve performansı hızlandırmaya yardımcı olan sıkıştırmayı etkinleştirir.
-
-N: Port yönlendirme için kullanışlıdır. Bu, ssh komutunun herhangi bir uzak komut yürütmemesini sağlar.
-
-l cloudsigma your_server_ip: -l parametresi, sunucuya bağlandıktan sonra oturum açmak istediğiniz kullanıcıyı belirtmenize olanak tanır.
Yukarıdaki komut, sunucunuzun güvenlik duvarını yalnızca şu porta bağlantılara izin verecek şekilde açmaktan daha güvenli bir bağlantı kurma yöntemidir: 5901 (herhangi bir yerden). Bağlantıyı kurduktan sonra, SSH tüneli VNC'nizdeki şu porttan gelen içeriği: 5901 varsayılan SSH portu üzerinden yerel makinenizdeki şu porta yönlendirir: 59000 (yerel makinenizde); port 22.
Sunucunuza bağlanmak için PuTTY programını da kullanabilirsiniz. PuTTY'yi açın, PuTTY terminalinin sol tarafına gidin ve bağlanmak için Connection dalını bulun. Ardından, SSH dalını genişletin ve Tunnels seçeneğine tıklayın. Options controlling SSH port forwarding ekranında, bölümüne, 59000 değerini Source Port olarak ve localhost:5901 değerini Destination:

olarak girin. Tüm seçenekleri değiştirmeden bırakın, tüneli uygulamak için önce Add seçeneğine, ardından Apply seçeneğine tıklayın. Tünel başladıktan sonra, localhost: 59000 adresine bağlanmak için bir VNC istemcisi kullanın. Varsayılan olarak, Step-1 içinde oluşturduğumuz şifreyi kullanarak kimlik doğrulaması yapmanız istenecektir. Bağlandıktan sonra varsayılan Xfce masaüstünü göreceksiniz:

Ev dizinindeki dosyalara erişebilir ve bunları yönetebilirsiniz. Ayrıca, VNC sunucunuzu bir systemd service.
Adım 4— VNC'yi Bir Systemd Hizmeti Olarak Çalıştırma
VNC sunucusunu bir systemd hizmeti olarak çalışacak şekilde ayarlamak, sunucu yönetimini kolaylaştırır. İhtiyaçlarınıza ve kolaylığınıza göre başlatabilir, durdurabilir, yeniden başlatabilir veya sonlandırabilirsiniz. Sunucu her açıldığında, sunucunun AÇIK veya KAPALI.
İlk olarak, hizmetleri yönetirken kullanmak istediğimiz VNC ekran portunu belirtmek için yeni bir birim (unit) dosyası oluşturacağız. Bir birim dosyası tanımlayın:
|
1 |
sudo nano /etc/systemd/system/vncserver@.service |
Dosya adının sonunda, hizmet yapılandırmasını kullanmak için bir argüman iletmenize olanak tanıyan @ sembolünü bulacaksınız.
Ardından, satır grubunu birim dosyasına ekleyin. User, Group, WorkingDirectory, alanlarını ve PIDFILE:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[Unit] Description=Start TightVNC server at startup After=syslog.target network.target [Service] Type=forking User=cloudsigma Group=cloudsigma WorkingDirectory=/home/cloudsigma PIDFile=/home/cloudsigma/.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.target |
VNC zaten çalışıyorsa, ExecStartPre komutu onu durduracaktır. ExecStart komutu VNC'yi başlatır ve renk derinliğini 1280×800 çözünürlükte 24-bit renk olarak ayarlar. Bu başlangıç seçeneklerini ihtiyacınıza göre düzenleyebilirsiniz. Ayrıca, ExecStart komutunun yine -localhost seçeneğini içerdiğini unutmayın. İşlem bittiğinde, birim dosyasını kaydedip kapatın.
Ardından, yeni birim dosyasını sisteminize tanıtın:
|
1 |
sudo sudo systemctl daemon-reload |
Birim dosyasını AÇIK konumuna getirin (etkinleştirin):
|
1 |
sudo systemctl enable vncserver@1.service |
The 1 (ardından gelen: @ işareti, servisin hangi ekran numarası üzerinde görünmesi gerektiğini belirtir. Bizim durumumuzda, bu varsayılan :1 'de tartışıldığı gibi Adım-2. VNC hala çalışıyorsa, VNC sunucusunun mevcut örneğini kill komutunu kullanarak durdurabilirsiniz:
|
1 |
vncserver -kill :1 |
Ardından, diğer herhangi bir systemd servisini başlatır gibi başlatın:
|
1 |
sudo systemctl start vncserver@1 |
Bu komutla başladığını doğrulayabilirsiniz:
|
1 |
sudo systemctl status vncserver@1 |
Çıktıyı göreceksiniz:
|
1 2 3 4 5 6 7 8 |
Çıktı vncserver@1.servis - Başlat TightVNC sunucu başlangıçta başlangıç Yüklendi: yüklü (/etc/systemd/system/vncserver@.servis; etkinleştirildi; satıcı ön ayar: etkinleştirildi) Etkin: etkin (çalışıyor) itibaren Per 2020-05-07 17:23:50 UTC; 6sn önce Süreç: 39768 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2) Süreç: 39772 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :1 (code=exited, status=0/SUCCESS) Ana PID: 39795 (Xtightvnc) ... |
VNC sunucunuz artık sunucunuz her açıldığında kullanılmaya hazırdır ve onu diğer herhangi bir systemd servisi gibi systemctl komutlarıyla yönetebilirsiniz. Ancak, istemci tarafında herhangi bir fark görmezsiniz. Yeniden bağlanmak için SSH tünelinizi şununla başlatın:
|
1 |
ssh -L 59000:localhost:5901 -C -N -l cloudsigma your_server_ip |
VNC istemcinizi kullanarak sunucunuzla localhost:59000 üzerinden yeniden bağlantı kurabilirsiniz.
Sonuç
Başlangıçta, bir VNC sunucusu kurmak, özellikle yeni bir bilgisayarla bağlantı kurmaya çalışırken zorlayıcı görünebilir. Güvenilir bir bağlantı kurduğunuzda, uzak bir bilgisayarla çalışmak eğlenceli ve heyecan verici olacaktır. Ubuntu 20.04 sunucunuzda çalışan güvenli bir VNC sunucusu ile kaynaklarınızı, dosyalarınızı, yazılımlarınızı ve ayarlarınızı kullanıcı dostu bir grafik arayüzle kolayca yönetebilirsiniz. Aşırı bant genişliği kullanımı, VNC kullanmanın belki de tek dezavantajıdır. Daha hızlı bir aktarım için düşük çözünürlüklü ve gri tonlamalı ekranlar kullanarak bunun üstesinden gelebilirsiniz.
Keyifli Bilişimler!
Yorumlar
Henüz yorum yapılmamış. İlk siz olun.