Ubuntu 20.04'te VNC nasıl kurulur ve yapılandırılır
giriiş
Sanal Ağ Bilişimi veya VNC, klavyenizi ve farenizi kullanarak uzak bir sunucudaki grafiksel bir masaüstü ortamıyla etkileşim kurmanıza olanak tanıyan bir bağlantı sistemidir. Komut satırına henüz alışamamış kullanıcıların uzak sunucudaki dosyaları, yazılımları ve ayarları yönetmesini kolaylaştırır.
Bu kılavuzda, bir Ubuntu 20.04 sunucusunda TightVNC ile bir VNC sunucusu kuracak ve SSH tüneli üzerinden ona bağlanacaksınız. Ardından, yerel makinenizdeki bir VNC istemci programını kullanarak grafiksel bir masaüstü ortamı aracılığıyla sunucunuzla etkileşim kuracaksınız.
Ön koşullar
Bu eğitimi tamamlamak için şunlara ihtiyacınız olacak:
- Yönetici yetkisi olmayan bir kullanıcıya ve UFW ile yapılandırılmış bir güvenlik duvarına sahip bir Ubuntu 20.04 sunucusu.
- VNC istemcisi yüklü yerel bir bilgisayar. Kullandığınız VNC istemcisi, SSH tünelleri üzerinden bağlantıları desteklemelidir:
- Windows'ta TightVNC, RealVNC veya UltraVNC'yi kullanabilirsiniz.
- macOS'ta yerleşik Ekran Paylaşımı uygulamasını kullanabilir veya RealVNC gibi platformlar arası bir uygulama kullanabilirsiniz.
- Linux'ta pek çok seçenek arasından seçim yapabilirsiniz, bunlar arasında şunlar yer alır: sirke, krdcRealVNC veya TightVNC'yi seçin.
Adım 1 – Masaüstü Ortamını ve VNC Sunucusunu Kurun
Ubuntu 20.04 Server varsayılan olarak grafiksel masaüstü ortamı veya VNC sunucusuyla birlikte gelmez, bu yüzden öncelikle bunları yükleyerek başlamanız gerekir.
Bir VNC sunucusu ve masaüstü ortamı seçerken birçok seçeneğiniz var. Bu eğitimde, en yeni Xfce masaüstü ortamı ve resmi Ubuntu deposunda bulunan TightVNC paketi için paketler kuracaksınız. Hem Xfce hem de TightVNC, hafif ve hızlı olmalarıyla bilinir ve bu da VNC bağlantınızın daha yavaş internet bağlantılarında bile sorunsuz ve kararlı olmasını sağlar.
Sunucunuza SSH ile bağlandıktan sonra paket listenizi güncelleyin:
$ sudo apt güncellemesi
Şimdi Xfce'yi şu şekilde paketleyin: xfce4-güzellikleri Masaüstü ortamında çeşitli iyileştirmeler içeren kurulum:
$ sudo apt install xfce4 xfce4-goodies
Kurulum sırasında Xfce için varsayılan bir ekran yöneticisi seçmeniz istenebilir. Ekran yöneticisi, grafiksel bir arayüz aracılığıyla bir masaüstü ortamını seçmenize ve oturum açmanıza olanak tanıyan bir programdır. Xfce'yi yalnızca bir VNC istemcisine bağlandığınızda kullanacaksınız ve bu Xfce oturumlarında zaten root olmayan bir Ubuntu kullanıcısı olarak oturum açmış olacaksınız. Bu nedenle, bu eğitimin amacı doğrultusunda ekran yöneticinizi seçmeniz önemli değildir. Birini seçin ve GİRMEK Basmak .
Kurulum tamamlandıktan sonra TightVNC sunucusunu kurun:
$ sudo apt install tightvncserver
Sonra, komutvncserver VNC parolasını ayarlamak, ilk yapılandırma dosyalarını oluşturmak ve bir VNC sunucusu örneği başlatmak için şunu çalıştırın:
$ vncserver
Cihazınıza uzaktan erişim sağlamak için bir şifre girmeniz ve onaylamanız istenecektir:
Çıktı
Masaüstlerinize erişmek için bir parolaya ihtiyacınız olacak.
Şifre:
Doğrulamak:
Şifreniz altı ila sekiz karakter uzunluğunda olmalıdır. 8 karakterden uzun şifreler otomatik olarak kesilir.
Şifreyi onayladıktan sonra, yalnızca görüntülenebilir bir şifre oluşturma seçeneğiniz olacak. Yalnızca görüntülenebilir bir şifreyle oturum açan kullanıcılar, VNC örneğini fare veya klavyeyle kontrol edemeyecek. Bu, VNC sunucunuzu kullanan diğer kişilere bir şey göstermek istiyorsanız kullanışlı bir seçenektir, ancak zorunlu değildir.
Bu işlem daha sonra sunucu için gerekli varsayılan yapılandırma dosyalarını ve bağlantı bilgilerini oluşturur. Ayrıca, port numarasında varsayılan bir sunucu örneği oluşturur. 5901 Bu porta ekran portu denir ve VNC tarafından kullanılır.:1 VNC, diğer görüntü bağlantı noktalarında birden fazla örneği çalıştırabilir. :2 Limana5902, 3: İşaret ederek 5903 vesaire.:
Çıktı
Yalnızca görüntülenebilir bir şifre girmek ister misiniz (e/h)?N
xauth: dosya /home/Sammy/.Xauthority mevcut değil
Yeni 'X' masaüstü ana_bilgisayar_adınız:1
Varsayılan başlatma betiği oluşturuluyor /home/Sammy/.vnc/xstartup
/home/ dizininde belirtilen uygulamaların başlatılmasıSammy/.vnc/xstartup
Günlük dosyası /home/Sammy/.vnc/ana_bilgisayar_adınız:1.günlük
Şifrenizi değiştirmek veya yalnızca görüntülenebilir bir şifre eklemek isterseniz bunu şu komutla yapabileceğinizi unutmayın: vncpasswd Yapmak:
$ vncpasswd
Bu noktada VNC sunucusu kurulmuş ve çalışıyor. Şimdi, Xfce'yi başlatacak ve sunucuya grafiksel bir arayüz üzerinden erişim sağlayacak şekilde yapılandıralım.
## Adım 2 – VNC Sunucusunu Yapılandırma
VNC sunucusunun başlatıldığında hangi komutları çalıştıracağını bilmesi gerekir. VNC'nin özellikle hangi grafiksel masaüstü ortamına bağlanacağını bilmesi gerekir.
VNC sunucusunun başlatıldığında çalıştırdığı komutlar, şu yapılandırma dosyasında bulunur: xstartup Klasörde
.vnc Aşağıda ana dizininiz bulunmaktadır. Başlangıç betiği, önceki adımda komutu çalıştırdığınızda oluşturulmuştur. vncserver Çalıştırdınız, ancak Xfce masaüstünü başlatmak için kendi betiğinizi oluşturacaksınız.
VNC sunucusunun nasıl yapılandırılacağını değiştireceğinizden, öncelikle portta çalışan VNC sunucusu örneğini kaldırın 5901 Çalışıyor. Aşağıdaki komutla durdurun:
$ vncserver -kill :1
Çıktı şu şekilde görünecektir, ancak farklı bir PID göreceksiniz:
Çıktı
Xtightvnc işlem kimliği sonlandırılıyor 17648
Dosyadan önce xstartup Değiştir, orijinalini yedekle:
$ mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
Şimdi bir dosya xstartup Yeni bir tane oluşturun ve bunu bir metin düzenleyicide açın. nano Açık:
$ nano ~/.vnc/xstartup
Daha sonra dosyaya aşağıdaki satırları ekleyin:
#!/bin/bash
xrdb $HOME/.X kaynakları
startxfce4 &
İlk satır bir 'shebang'. *Nix platformlarında çalıştırılabilir düz metin dosyalarında, saçmalık Sisteme, dosyanın çalıştırılması için hangi yorumlayıcıya gönderileceğini söyler. Bu durumda, dosyayı Bash yorumlayıcısına gönderiyorsunuz. Bu, her bir ardışık satırın sırayla bir komut olarak yürütülmesini sağlar.
Dosyadaki ilk komut, xrdb $HOME/.X kaynakları, VNC GUI çerçevesi dosyayı çağırır. .Xkaynaklar Kullanıcı sunucuyu okur. .Xkaynaklar Kullanıcının grafiksel masaüstünün terminal renkleri, imleç temaları ve yazı tipi oluşturma gibi belirli ayarlarında değişiklik yapabileceği yer burasıdır. İkinci komut, sunucuya Xfce'yi başlatmasını söyler. Bu komutlar, VNC sunucusunu her başlattığınızda veya yeniden başlattığınızda otomatik olarak yürütülür.
Bu satırları ekledikten sonra dosyayı kaydedip kapatın. Nano Bunu kullanarak bunu yapın, tuşuna basarak CTRL + X, Y Ve daha sonra GİRMEK Yap bunu.
VNC sunucusunun bu yeni kurulum dosyasını düzgün bir şekilde kullanabilmesini sağlamak için, dosyayı çalıştırılabilir hale getirmeniz gerekir:
$ chmod +x ~/.vnc/xstartup
Daha sonra VNC sunucusunu yeniden başlatın:
$ vncserver -localhost
Bu sefer komutun şu seçeneği içerdiğine dikkat edin: -yerel ana bilgisayar Bu, VNC sunucusunu sunucunuzun Loopback arayüzüne bağlar. Bu, VNC'nin yalnızca yüklü olduğu sunucudan gelen bağlantılara izin vermesine neden olur.
Ardından, yerel makineniz ile sunucunuz arasında bir SSH tüneli oluşturursunuz ve VNC'yi, yerel makinenizden gelen bağlantının sunucunuzdan kaynaklandığına inandırırsınız. Bu strateji, VNC'ye yalnızca sunucunuza SSH erişimi olan kullanıcılar erişebildiği için, VNC'nin etrafına ekstra bir güvenlik katmanı ekler.
Şuna benzer bir çıktı göreceksiniz:
Çıktı
Yeni 'X' masaüstü ana_bilgisayar_adınız:1
/home/ dizininde belirtilen uygulamaların başlatılmasıSammy/.vnc/xstartup
Günlük dosyası /home/Sammy/.vnc/ana_bilgisayar_adınız:1.günlük
Yapılandırma tamamlandıktan sonra yerel makinenizden VNC sunucusuna bağlanmaya hazırsınız.
Adım 3 – VNC masaüstüne güvenli bir şekilde bağlanın
VNC, bağlanırken güvenli protokoller kullanmaz. Sunucunuza güvenli bir şekilde bağlanmak için bir SSH tüneli oluşturur ve ardından VNC istemcinize doğrudan iletişim kurmak yerine bu tüneli kullanarak bağlanmasını söylersiniz.
Yerel bilgisayarınızda güvenli bir şekilde bağlanan bir SSH bağlantısı oluşturun Yerel bağlantıyı barındır VNC aktarımı. Bunu Linux veya macOS'ta terminal üzerinden şu komutla yapabilirsiniz:ssh Aşağıdakileri yapın:
$ ssh -L 59000 :localhost: 5901 -C -N -l Sammy sunucunuzun_ip'si
Bu komutun seçeneklerinin anlamı şudur ssh Şöyle denilmektedir:
- -L 59000:yerel ana bilgisayar:5901: Anahtar -L Belirtilen portun yerel bilgisayarda olduğunu belirtir (59.000(hedef sunucudaki belirtilen ana bilgisayara ve porta gönderilmelidir)yerel ana bilgisayar:5901, liman anlamına gelir 5901 Hedef sunucuda, olarak sunucunuzun_ip'si (tanımlı). Belirttiğiniz yerel bağlantı noktasının biraz keyfi olduğunu unutmayın. Bağlantı noktası başka bir hizmete bağlı olmadığı sürece, tüneliniz için yönlendirme bağlantı noktası olarak kullanabilirsiniz.
- -C: Bu bayrak sıkıştırmayı etkinleştirir, bu da kaynak tüketimini azaltmaya ve görevleri hızlandırmaya yardımcı olabilir.
- -N: Bu seçenekssh Uzaktan komut çalıştırmak istemediğinizi söylüyor. Bu ayar, yalnızca portları yönlendirmek istediğinizde kullanışlıdır.
- l sammy your_server_ip-: Anahtar -l Sunucuya bağlanırken oturum açmak istediğiniz kullanıcıyı belirtmenize olanak tanır. Emin olun Sammy Ve sunucunuzun_ip'si Yerine root olmayan kullanıcınızın adını ve sunucunuzun IP adresini yazın.
Not: Bu komut, verileri porttan gönderen bir SSH tüneli oluşturur 5901 VNC sunucunuzda porta gidin 59.000 Yerel makinenizde port üzerinden 22 Her cihazda varsayılan SSH bağlantı noktası yönlendirilir. Ubuntu 20.04 için temel sunucu kurulum kılavuzunu takip ettiğinizi varsayarak, sunucunuza OpenSSH aracılığıyla bağlantılara izin vermek için bir UFW kuralı eklediniz.
Bu, porta bağlanmak için sunucunuzun güvenlik duvarını açmaktan daha güvenlidir. 5901 Bunun nedeni, herkesin VNC aracılığıyla sunucunuza erişmesine izin vermesidir. Bir SSH tüneli üzerinden bağlanarak, VNC erişimini sunucuya halihazırda SSH erişimi olan makinelerle sınırlarsınız.
Sunucunuza bağlanmak için PuTTY kullanıyorsanız, terminal penceresinin üst çubuğuna sağ tıklayıp ardından seçeneğe tıklayarak bir SSH tüneli oluşturabilirsiniz. …Ayarları Değiştir Tıklamak:

Dal Bağlantı PuTTY Yeniden Yapılandırma penceresinin sol tarafındaki ağaç menüsünden dalı bulun. SSH Açın ve dokunun Tüneller Tıkla. İçeri Port Yönlendirme Sayfası Denetleyici Seçenekleri59000 strong> SSH, kaynak portu olarak ve yerel ana bilgisayar:5901 Hedef olarak şunu girin:

Daha sonra butona tıklayın. Eklemek Tıklayın ve ardından düğmeye basın Uygula Tüneli uygulamak için tıklayın.
Tünel çalıştıktan sonra, bağlanmak için bir VNC istemcisi kullanın yerel ana bilgisayar:59000 1. adımda belirlediğiniz şifreyi kullanarak kimlik doğrulaması yapmanız istenecektir.
Bağlandığınızda varsayılan Xfce masaüstünü göreceksiniz. Aşağıdaki gibi görünmelidir:

Burada görebileceğiniz gibi, ana dizininizdeki dosyalara dosya yöneticisinden veya komut satırından erişebilirsiniz:

CTRL+C SSH tünelini durdurmak ve uygulamanıza geri dönmek için yerel terminalinizde tuşuna basın. Bu işlem aynı zamanda VNC oturumunuzun bağlantısını da kesecektir.
Artık VNC sunucunuzu bir systemd servisi olarak çalışacak şekilde yapılandırabilirsiniz.
Adım 4 – VNC'yi bir sistem hizmeti olarak çalıştırın
VNC sunucusunu bir systemd hizmeti olarak çalışacak şekilde ayarlayarak, tıpkı diğer hizmetler gibi, gerektiğinde başlatabilir, durdurabilir ve yeniden başlatabilirsiniz. Ayrıca, sunucunuz başlatıldığında VNC'nin başlatılmasını sağlamak için systemd yönetim komutlarını da kullanabilirsiniz.
İlk olarak, şu adla yeni bir birim dosyası oluşturun: /etc/systemd/system/[email protected] Yaratmak:
$ sudo nano /etc/systemd/system/[email protected]
Sembol @ Adın sonuna, servis yapılandırmasında kullanabileceğiniz bir argüman geçirmemize olanak tanır. Bunu, servisi yönetirken kullanmak istediğiniz VNC ekran portunu belirtmek için kullanacaksınız.
Dosyaya aşağıdaki satırları ekleyin. Değeri eklediğinizden emin olun Kullanıcı, Grup, Çalışma Dizini ve değerdeki kullanıcı adı PIDOSYASI Kullanıcı adınıza uyacak şekilde değiştirin:
[Birim] Açıklama=Başlangıçta TightVNC sunucusunu başlat
Sonra=syslog.target network.target
[Hizmet] Türü=çatallanma
Kullanıcı= Sammy
Grup= Sammy
Çalışma Dizini=/anasayfa/Sammy
PIDDosyası=/ev/Sammy/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -derinlik 24 -geometri 1280×800 -localhost:%i
ExecStop=/usr/bin/vncserver -kill :%i
[Kurulum] WantedBy=multi-user.target
Emir ExecStartPre VNC zaten çalışıyorsa, duracaktır. Komut ExecStart VNC'yi başlatır ve renk derinliğini 1280x800 çözünürlükte 24 bit renge ayarlar. Bu başlatma seçeneklerini ihtiyaçlarınıza göre de değiştirebilirsiniz. Ayrıca, komutun şu şekilde olduğunu unutmayın:ExecStart Tekrar
Seçenek içerir -yerel ana bilgisayar Öyledir.
Dosyayı kaydedip kapatın.
Daha sonra sisteme yeni birim dosyasını bildirin:
$ sudo systemctl daemon-reload
$ sudo systemctl daemon-reload
Birim dosyasını etkinleştirin:
$ sudo systemctl [email protected]'i etkinleştir
1 İşaretin altında@ Hizmetin hangi ekran numarasında görünmesi gerektiğini belirtir, bu durumda varsayılan :1 2. adımda tartışıldığı gibi.
VNC sunucusunun geçerli örneği hala çalışıyorsa durdurun:
$ vncserver -kill :1
Daha sonra diğer systemd servisleri gibi başlatın:
$ sudo systemctl start vncserver@1
Şu komutla başladığını doğrulayabilirsiniz:
$ sudo systemctl status vncserver@1
Doğru şekilde başlatılırsa çıktı şu şekilde görünmelidir:
Çıktı
● [email protected] – Başlangıçta Sıkı VNC sunucusunu başlat
Yüklendi: yüklendi (/etc/systemd/system/[email protected]; etkin; satıcı ön ayarı: etkin)
Aktif: Per 2020-05-07 17:23:50 UTC'den beri aktif (çalışıyor); 6 saniye önce
İşlem: 39768 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (kod=çıkıldı, durum=2)
İşlem: 39772 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280×800 :1 (kod=çıkıldı, durum=0/BAŞARILI)
Ana PID: 39795 (Xtightvnc)
…
VNC sunucunuz artık sunucunuz başlatıldığında kullanıma hazırdır ve onu diğer systemd servisleri gibi aşağıdaki komutlarla başlatabilirsinizsistemctl Üstesinden gelmek.
Ancak istemci tarafında herhangi bir fark olmayacaktır. Yeniden bağlanmak için SSH tünelinizi yeniden başlatın:
$ ssh -L 59000 :localhost: 5901 -C -N -l Sammy sunucunuzun_ip'si
Daha sonra VNC istemci yazılımınızı kullanarak yeni bir bağlantı kurun yerel ana bilgisayar:59000 Sunucunuza bir bağlantı oluşturun.
Sonuç
Artık Ubuntu 20.04 sunucunuzda çalışan güvenli bir VNC sunucunuz var. Dosyalarınızı, yazılımlarınızı ve ayarlarınızı kullanıcı dostu bir grafik arayüzle yönetebilir ve web tarayıcıları gibi grafiksel yazılımları uzaktan çalıştırabilirsiniz.









