Takip et

Ubuntu 16.04 Üzerine VNC Kurulumu ve Yapılandırması

Ubuntu 16.04 Üzerine VNC Kurulumu ve Yapılandırması Giriş: VNC Nedir ve Neden Kullanılır? Sanallaştırma, uzaktan erişim ve sistem yönetimi

Ubuntu 16.04 Üzerine VNC Kurulumu ve Yapılandırması

Giriş: VNC Nedir ve Neden Kullanılır?

Sanallaştırma, uzaktan erişim ve sistem yönetimi, modern BT altyapılarının vazgeçilmez bileşenleridir. Bu bağlamda, Virtual Network Computing (VNC), kullanıcılara bir bilgisayarın grafiksel masaüstünü ağ üzerinden uzaktan görüntüleme ve kontrol etme imkanı sunan güçlü bir protokoldür. VNC, temel olarak bir sunucu (VNC server) ve bir istemci (VNC viewer) olmak üzere iki ana bileşenden oluşur. Sunucu, masaüstü ortamını paylaşan bilgisayarda çalışırken, istemci bu masaüstünü görüntülemek ve etkileşimde bulunmak için kullanılır.

Ubuntu 16.04, uzun süreli destek (LTS) sunan ve birçok sunucu ortamında hala aktif olarak kullanılan sağlam bir işletim sistemidir. Bu makale, Ubuntu 16.04 sunucunuz veya masaüstü bilgisayarınız üzerinde VNC sunucusunu nasıl kuracağınızı ve güvenli bir şekilde nasıl yapılandıracağınızı adım adım açıklamaktadır. VNC, özellikle GUI tabanlı uygulamalara uzaktan erişim sağlamak, görsel hata ayıklama yapmak veya bir sunucu üzerinde masaüstü ortamını kullanmak isteyen sistem yöneticileri ve geliştiriciler için paha biçilmez bir araçtır.

VNC’nin temel avantajları arasında platformlar arası uyumluluk (Windows, macOS, Linux, mobil cihazlar), kullanım kolaylığı ve görsel bir arayüzle uzaktan etkileşim kurma yeteneği bulunur. Ancak, VNC’nin varsayılan olarak şifreleme sunmaması nedeniyle güvenlik, kurulum ve yapılandırma sürecinde kritik bir husustur. Bu makalede, bu güvenlik endişelerini gidermek için SSH tünelleme gibi yöntemlere de değineceğiz.

Ön Koşullar

VNC kurulumuna başlamadan önce aşağıdaki ön koşulların karşılandığından emin olun:

* Ubuntu 16.04 İşletim Sistemi: Kurulum yapılacak sunucu veya masaüstü bilgisayarınızda Ubuntu 16.04 yüklü ve çalışır durumda olmalıdır.
* Sudo Yetkileri: Kurulum ve yapılandırma işlemleri için sudo yetkilerine sahip bir kullanıcı hesabınız olmalıdır.
* İnternet Bağlantısı: Gerekli paketleri indirmek için aktif bir internet bağlantısı gereklidir.
* Temel Komut Satırı Bilgisi: Linux komut satırını kullanmaya aşina olmanız beklenir.
* Masaüstü Ortamı (İsteğe Bağlı ama Önerilir): Eğer sunucunuzda henüz bir masaüstü ortamı yüklü değilse, VNC aracılığıyla görsel bir arayüz elde etmek için hafif bir masaüstü ortamı (örneğin XFCE) kurmanız önerilir. Ubuntu 16.04’ün varsayılan Unity masaüstü ortamı VNC ile iyi çalışsa da, kaynak tüketimi açısından XFCE gibi daha hafif seçenekler uzaktan erişim için daha verimlidir.

VNC Sunucusu Seçimi

Piyasada çeşitli VNC sunucusu uygulamaları bulunmaktadır. Her birinin kendine özgü özellikleri ve avantajları vardır:

* TightVNC: Genellikle hafifliği, iyi performansı ve güvenilirliği nedeniyle tercih edilir. Özellikle bant genişliği kısıtlı bağlantılarda etkilidir. Ubuntu depolarında kolayca bulunur.
* TigerVNC: Modern ve performans odaklı bir VNC uygulamasıdır. Gelişmiş sıkıştırma ve güvenlik özellikleri sunar.
* x11vnc: Mevcut X sunucunuzu paylaşmak için kullanılır. Bu, fiziksel olarak bağlı bir monitördeki masaüstü oturumunu uzaktan görüntülemek istediğinizde kullanışlıdır.

Bu makalede, kurulumu ve yapılandırması basit olduğu ve çoğu kullanım senaryosu için yeterli performansı sunduğu için TightVNC‘ye odaklanacağız.

TightVNC Kurulumu

TightVNC sunucusunu Ubuntu 16.04’e kurmak için aşağıdaki adımları izleyin.

Sistem Paketlerini Güncelleme

Herhangi bir yazılım kurulumuna başlamadan önce, sistem paket listenizi güncellemek iyi bir uygulamadır. Bu, en yeni paket sürümlerini almanızı ve olası bağımlılık sorunlarını önlemenizi sağlar.

sudo apt update
sudo apt upgrade -y

sudo apt update komutu, yerel paket indeksini uzak depolardaki bilgilerle senkronize eder. sudo apt upgrade -y komutu ise mevcut tüm yüklü paketleri en son sürümlerine yükseltir ve -y bayrağı tüm sorulara otomatik olarak “evet” yanıtı verir.

TightVNC Sunucusunu Kurma

Şimdi TightVNC sunucu paketini kuralım:

sudo apt install tightvncserver -y

Bu komut, tightvncserver paketini ve onun bağımlılıklarını sisteminize yükleyecektir.

Masaüstü Ortamını Kurma (Gerekirse)

Eğer sunucunuzda grafiksel bir masaüstü ortamı yüklü değilse veya VNC oturumlarınız için daha hafif bir alternatif kullanmak istiyorsanız (örneğin XFCE), şimdi kurabilirsiniz. XFCE, VNC için mükemmel bir seçimdir çünkü kaynakları az tüketir ve hızlı bir deneyim sunar.

sudo apt install xfce4 xfce4-goodies -y

Bu komut, XFCE masaüstü ortamını ve bazı ek yardımcı programları kurar. Eğer Unity veya başka bir masaüstü ortamı kullanmak istiyorsanız, ilgili paketleri kurabilirsiniz (ubuntu-desktop gibi), ancak bunlar daha fazla kaynak tüketebilir.

VNC Sunucusunun İlk Yapılandırması

TightVNC sunucusunu kurduktan sonra, ilk kez çalıştırarak bir VNC parolası oluşturmanız ve başlangıç yapılandırma dosyasını (xstartup) oluşturmanız gerekir.

VNC Parolası Oluşturma

VNC sunucusunu ilk kez çalıştırdığınızda, sizden bir erişim parolası oluşturmanızı isteyecektir. Bu parola, VNC istemcileri aracılığıyla sunucuya bağlanmak için kullanılacaktır.

vncserver

Komutu çalıştırdıktan sonra aşağıdaki gibi bir çıktı göreceksiniz:

You will require a password to access your desktops.

Password:
Verify:

Güçlü bir parola girin ve tekrar onaylayın. Ardından, yalnızca görüntüleme amaçlı (read-only) bir parola oluşturmak isteyip istemediğiniz sorulacaktır. Çoğu durumda buna gerek yoktur, bu yüzden n tuşuna basıp Enter’a basabilirsiniz.

Would you like to enter a view-only password (y/n)? n

Parola başarıyla ayarlandığında, VNC sunucusu yeni bir oturum başlatacak ve size bir masaüstü numarası (display number) atayacaktır. Örneğin, :1 veya :2 gibi. Bu numara, VNC istemcinizle bağlanırken kullanacağınız port numarasını belirler (5901, 5902 vb.).

New 'X' desktop is yourhostname:1

Starting applications specified in /home/youruser/.vnc/xstartup
Log file is /home/youruser/.vnc/yourhostname:1.log

Bu çıktı, VNC sunucusunun :1 numaralı masaüstünde çalıştığını ve 5901 portundan erişilebilir olduğunu gösterir.

VNC Sunucusunu Durdurma

Şimdi ilk başlattığınız VNC oturumunu durdurun. Bunu, xstartup dosyasını düzenleyerek VNC oturumunun doğru masaüstü ortamını başlatmasını sağlamak için yapıyoruz.

vncserver -kill :1

:1 yerine, yukarıdaki çıktıda size atanan masaüstü numarasını kullanın. Komut başarıyla tamamlandığında, oturumun kapatıldığına dair bir mesaj alacaksınız.

Killing Xvnc process ID 12345

VNC Sunucusunun Yapılandırması (xstartup Dosyası)

VNC sunucusunun doğru masaüstü ortamını başlatmasını sağlamak için .vnc/xstartup dosyasını düzenlemeniz gerekir. Bu dosya, VNC sunucusu başlatıldığında çalıştırılacak komutları içerir.

xstartup Dosyasının Yedeklenmesi

Herhangi bir yapılandırma dosyasını düzenlemeden önce, orijinalini yedeklemek iyi bir uygulamadır.

mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

xstartup Dosyasının Düzenlenmesi

Şimdi yeni bir xstartup dosyası oluşturalım ve düzenleyelim. Bu örnekte, XFCE masaüstü ortamını başlatacak bir yapılandırma kullanacağız.

nano ~/.vnc/xstartup

Açılan editöre aşağıdaki içeriği yapıştırın:

#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

* #!/bin/bash: Bu, betiğin bash kabuğu ile çalıştırılacağını belirtir.
* xrdb $HOME/.Xresources: Bu komut, X kaynak ayarlarını yükler. Genellikle masaüstü ortamının düzgün görünmesi için gereklidir.
* startxfce4 &: Bu komut, XFCE masaüstü ortamını başlatır. Sonundaki & işareti, komutun arka planda çalışmasını sağlar ve VNC sunucusunun diğer işlemlere devam etmesine izin verir.

Eğer farklı bir masaüstü ortamı kullanıyorsanız, startxfce4 yerine ilgili başlatma komutunu kullanmanız gerekir:
* GNOME (Ubuntu Unity): gnome-session & (Ancak Unity’nin VNC ile performansı düşük olabilir.)
* MATE: mate-session &
* LXDE: startlxde &

Dosyayı kaydedin (Ctrl+O, Enter) ve kapatın (Ctrl+X).

xstartup Dosyasına Çalıştırma İzni Verme

xstartup dosyasının çalıştırılabilir olması gerekir.

chmod +x ~/.vnc/xstartup

VNC Sunucusunu Başlatma ve Yönetme

Yapılandırma tamamlandıktan sonra, VNC sunucusunu istediğiniz ayarlarla başlatabilir ve yönetebilirsiniz.

VNC Sunucusunu Başlatma

Şimdi VNC sunucusunu belirli bir çözünürlük (geometry) ve renk derinliği (depth) ile başlatabilirsiniz. Örneğin, 1280×800 çözünürlük ve 24 bit renk derinliği için:

vncserver -geometry 1280x800 -depth 24 :1

* -geometry 1280x800: VNC oturumunun çözünürlüğünü ayarlar. Kendi tercihlerinize göre değiştirebilirsiniz.
* -depth 24: Renk derinliğini 24 bit olarak ayarlar. Daha yüksek değerler daha iyi renk kalitesi sunar ancak daha fazla bant genişliği tüketir.
* :1: VNC oturumunun masaüstü numarasını belirtir. Bu numara, 5900 + masaüstü numarası formülüyle VNC portunu belirler. Yani :1 için 5901, :2 için 5902 vb.

Komut başarıyla çalıştıktan sonra, VNC sunucusunun belirtilen ayarlarla çalıştığını belirten bir mesaj göreceksiniz.

VNC Oturumlarını Listeleme

Çalışan VNC oturumlarınızı görmek için aşağıdaki komutu kullanabilirsiniz:

vncserver -list

Bu komut, aktif VNC oturumlarını ve bunların masaüstü numaralarını listeler.

VNC Oturumunu Durdurma

Belirli bir VNC oturumunu durdurmak için vncserver -kill komutunu kullanın:

vncserver -kill :1

:1 yerine durdurmak istediğiniz oturumun masaüstü numarasını girin.

Güvenlik Hususları: SSH Tünelleme

VNC protokolü, varsayılan olarak şifreleme sağlamaz. Bu, VNC trafiğinin ağ üzerinden açık metin olarak gönderildiği ve kötü niyetli kişiler tarafından kolayca ele geçirilebileceği anlamına gelir. Bu güvenlik açığını gidermek için SSH tünelleme kullanmak şiddetle tavsiye edilir. SSH tünelleme, VNC trafiğini güvenli bir SSH bağlantısı üzerinden şifreleyerek iletir.

SSH Tünelleme Nasıl Çalışır?

SSH tünelleme, yerel bilgisayarınızdaki bir portu (örneğin 5901) uzak sunucudaki bir porta (örneğin 5901) bağlar. VNC istemciniz daha sonra localhost:5901 adresine bağlanır ve SSH bağlantısı bu trafiği güvenli bir şekilde uzak sunucudaki gerçek VNC portuna iletir.

SSH Tüneli Oluşturma

Yerel bilgisayarınızdan (VNC istemcisinin çalıştığı bilgisayar) aşağıdaki komutu kullanarak bir SSH tüneli oluşturun:

ssh -L 5901:127.0.0.1:5901 -N -f your_username@your_server_ip

Bu komutu kendi bilgilerinizle değiştirin:
* your_username: Ubuntu sunucunuzdaki kullanıcı adınız.
* your_server_ip: Ubuntu sunucunuzun IP adresi veya ana bilgisayar adı.
* -L 5901:127.0.0.1:5901: Bu kısım, yerel bilgisayarınızdaki 5901 portunu (localhost:5901) uzak sunucudaki 127.0.0.1:5901 portuna yönlendirir. Eğer VNC sunucunuz :2 (5902) üzerinde çalışıyorsa, bu kısmı 5902:127.0.0.1:5902 olarak değiştirmeniz gerekir.
* -N: Uzak komut çalıştırmaz. Yalnızca port yönlendirme yapar.
* -f: SSH bağlantısını arka plana atar.

Bu komutu çalıştırdıktan sonra SSH parolanız istenecektir (eğer SSH anahtarı kullanmıyorsanız). Parolayı girdikten sonra tünel kurulmuş olacaktır.

Güvenlik Duvarı (UFW) Yapılandırması

Ubuntu 16.04’te Uncomplicated Firewall (UFW) varsayılan güvenlik duvarıdır. Eğer UFW etkinse, SSH bağlantılarına izin verdiğinizden emin olmanız gerekir. VNC portunu (5901, 5902 vb.) doğrudan dışarıya açmanız tavsiye edilmez çünkü bu güvenli değildir. Yalnızca SSH portunu açmalısınız.

SSH portuna izin verme (varsayılan 22):

sudo ufw allow ssh

veya belirli bir port kullanıyorsanız:

sudo ufw allow 22/tcp

Eğer UFW etkin değilse, etkinleştirmek için:

sudo ufw enable

Mevcut UFW kurallarını kontrol etmek için:

sudo ufw status

Önemli: SSH tünelleme kullanıyorsanız, VNC portlarını (5901, 5902 vb.) doğrudan güvenlik duvarında açmanıza gerek yoktur. Bu portlara yalnızca localhost üzerinden erişilecektir.

VNC İstemcisi ile Bağlanma

SSH tünelini kurduktan sonra, herhangi bir VNC istemcisini (viewer) kullanarak sunucunuza bağlanabilirsiniz. Popüler VNC istemcileri şunlardır:

* RealVNC Viewer: Windows, macOS, Linux, Android ve iOS için mevcuttur.
* TightVNC Viewer: Windows için mevcuttur.
* TigerVNC Viewer: Windows, macOS ve Linux için mevcuttur.
* macOS Yerleşik VNC İstemcisi: Finder’da Command+K tuşlarına basarak veya “Go” menüsünden “Connect to Server” seçeneğini kullanarak vnc://localhost:5901 adresine bağlanabilirsiniz.

Bağlantı Adımları (SSH Tüneli ile)

1. VNC İstemcinizi Açın: Tercih ettiğiniz VNC istemcisini başlatın.
2. Adresi Girin: Bağlantı adresi olarak localhost:5901 (veya VNC oturumunuzun kullandığı port numarası) girin.
* Örnek: localhost:1 veya localhost:5901
3. Bağlanın: Bağlantı düğmesine tıklayın.
4. Parolayı Girin: VNC sunucusunu ilk yapılandırırken belirlediğiniz VNC parolasını girin.

Başarılı bir bağlantının ardından, Ubuntu 16.04 sunucunuzun masaüstünü VNC istemcinizde görmelisiniz.

Gelişmiş Yapılandırmalar ve Yönetim

VNC sunucusunu daha kararlı ve yönetilebilir hale getirmek için bazı gelişmiş yapılandırmalar yapabiliriz. Özellikle VNC oturumunun sunucu yeniden başlatıldığında otomatik olarak başlamasını sağlamak önemlidir.

VNC Oturumunu Systemd Servisi Olarak Çalıştırma (Kullanıcı Bazlı)

Ubuntu 16.04 systemd kullanır. VNC oturumunuzu bir systemd servisi olarak yapılandırmak, oturumun sunucu yeniden başlatıldığında otomatik olarak başlamasını veya kolayca yönetilmesini sağlar. Bu, özellikle sunucu tarafında kalıcı bir VNC oturumu isteniyorsa kullanışlıdır.

Önce, kullanıcınız için bir systemd hizmet dizini oluşturun:

mkdir -p ~/.config/systemd/user/

Ardından, vncserver@.service adında bir hizmet dosyası oluşturun. @ işareti, hizmetin bir örnek şablonu olduğunu ve farklı masaüstü numaralarıyla başlatılabileceğini belirtir.

nano ~/.config/systemd/user/vncserver@.service

Aşağıdaki içeriği dosyaya yapıştırın. User ve Group değerlerini kendi kullanıcı adınızla değiştirdiğinizden emin olun. Ayrıca PIDFILE yolundaki your_user kısmını da kendi kullanıcı adınızla değiştirin. ExecStart ve ExecStop komutlarındaki -geometry ve -depth değerlerini istediğiniz gibi ayarlayabilirsiniz.

[Unit]
Description=TightVNC remote desktop service for %i
After=syslog.target network.target

[Service]
Type=forking
User=your_user
Group=your_user
WorkingDirectory=/home/your_user

PIDFile=/home/your_user/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=default.target

* %i: Bu, hizmetin örnek adından (örneğin vncserver@1.service içindeki 1) gelen değeri temsil eder. Böylece :1, :2 gibi farklı VNC oturumları oluşturabilirsiniz.
* User=your_user, Group=your_user: Bu, VNC oturumunun hangi kullanıcı ve grup altında çalışacağını belirtir. Kendi kullanıcı adınızla değiştirmelisiniz.
* PIDFile: VNC sunucusunun PID dosyasının yolunu belirtir.
* ExecStartPre: Hizmet başlamadan önce çalışan komut. Mevcut bir oturumu öldürerek çakışmaları önler.
* ExecStart: VNC sunucusunu başlatan komut.
* ExecStop: VNC sunucusunu durduran komut.
* WantedBy=default.target: Bu, hizmetin kullanıcının varsayılan hedefine bağlı olduğunu ve kullanıcının oturumu açıldığında otomatik olarak başlaması gerektiğini belirtir.

Dosyayı kaydedin (Ctrl+O, Enter) ve kapatın (Ctrl+X).

Şimdi systemd yapılandırmasını yeniden yükleyin, hizmeti etkinleştirin ve başlatın:

systemctl --user daemon-reload
systemctl --user enable vncserver@1.service
systemctl --user start vncserver@1.service

Bu komutlar, :1 numaralı VNC oturumunu systemd aracılığıyla başlatır ve kullanıcının her oturum açtığında otomatik olarak başlamasını sağlar.

Hizmetin durumunu kontrol etmek için:

systemctl --user status vncserver@1.service

Not: Bu systemd hizmeti, kullanıcı oturumu açtığında çalışacak şekilde yapılandırılmıştır. Eğer sunucu önyüklendiğinde, kullanıcı oturumu açmadan önce VNC’nin çalışmasını istiyorsanız, daha karmaşık bir sistem genelinde (system-wide) systemd hizmeti yapılandırmanız gerekir. Ancak çoğu uzaktan erişim senaryosu için kullanıcı bazlı hizmet yeterlidir ve daha güvenlidir.

Birden Fazla VNC Oturumu

Farklı kullanıcılar için veya aynı kullanıcı için farklı çözünürlüklerde birden fazla VNC oturumu başlatabilirsiniz. Her oturum farklı bir masaüstü numarası ve dolayısıyla farklı bir port kullanır.

Örneğin, ikinci bir oturumu başlatmak için:

vncserver -geometry 1024x768 -depth 16 :2

Bu oturuma localhost:5902 (SSH tüneli aracılığıyla) veya doğrudan your_server_ip:5902 (güvenli değil) üzerinden erişilebilir. Eğer systemd hizmeti kullanıyorsanız, vncserver@2.service gibi bir örnek başlatmanız gerekir.

Sık Karşılaşılan Sorunlar ve Çözümleri

VNC kurulumu sırasında veya sonrasında bazı yaygın sorunlarla karşılaşabilirsiniz:

* Boş veya Gri Ekran: Bu genellikle xstartup dosyasının yanlış yapılandırılmasından kaynaklanır. xstartup dosyanızın doğru masaüstü ortamını başlattığından ve çalıştırılabilir olduğundan emin olun (chmod +x ~/.vnc/xstartup). Ayrıca, startxfce4 & gibi komutun sonunda & işareti olduğundan emin olun, aksi takdirde VNC sunucusu yanıt vermeyebilir.
* Bağlantı Reddedildi:
* VNC sunucusunun çalıştığından emin olun (vncserver -list).
* Güvenlik duvarınızın (UFW) SSH portuna izin verdiğinden emin olun.
* Eğer SSH tünelleme kullanıyorsanız, tünelin doğru kurulduğundan ve aktif olduğundan emin olun.
* Eğer doğrudan bağlanmaya çalışıyorsanız (güvenli değil), güvenlik duvarınızın VNC portuna (5901, 5902 vb.) izin verdiğinden emin olun.
* Yanlış Parola: VNC istemcisinde doğru parolayı girdiğinizden emin olun. Parolayı değiştirmek için vncpasswd komutunu kullanabilirsiniz.
* Çok Yavaş Performans:
* Daha hafif bir masaüstü ortamı (XFCE gibi) kullanmayı düşünün.
* Daha düşük bir renk derinliği (örneğin -depth 16) kullanmayı deneyin.
* VNC istemcinizin sıkıştırma ayarlarını kontrol edin.
* VNC Sunucusu Başlamıyor (Log Dosyaları): VNC sunucusu başlatma sorunlarını gidermek için log dosyalarını kontrol edin. Log dosyaları genellikle ~/.vnc/ dizininde bulunur (örneğin ~/.vnc/yourhostname:1.log). Bu dosyalar, başlatma sırasında oluşan hatalar hakkında değerli bilgiler içerebilir.

Sonuç

Bu kapsamlı kılavuzda, Ubuntu 16.04 sunucunuz veya masaüstü bilgisayarınız üzerinde TightVNC sunucusunu nasıl kuracağınızı ve yapılandıracağınızı adım adım öğrendiniz. Başlangıç paket güncellemesinden TightVNC kurulumuna, xstartup dosyası yapılandırmasına, SSH tünelleme ile güvenli bağlantı kurmaya ve systemd ile otomatik başlatma ayarlarına kadar tüm önemli adımları ele aldık.

VNC, uzaktan grafiksel erişim sağlamak için güçlü ve esnek bir araçtır. Ancak, güvenlik her zaman öncelikli olmalıdır. Bu nedenle, VNC trafiğini şifrelemek için her zaman SSH tünelleme kullanmanız şiddetle tavsiye edilir. Bu, hassas verilerinizin ağ üzerinden güvenli bir şekilde iletilmesini sağlar.

Artık Ubuntu 16.04 sisteminize dünyanın herhangi bir yerinden güvenli ve verimli bir şekilde uzaktan erişebilir, masaüstü ortamınızı yönetebilir ve görsel tabanlı görevlerinizi gerçekleştirebilirsiniz. Bu kurulum, sistem yönetimi, geliştirme veya uzaktan destek gibi çeşitli senaryolar için size büyük kolaylık sağlayacaktır.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.