Şöyle hayal edelim, kendi lokalimizde bir şeyler geliştiriyoruz ve bir arkadaşımızdan fikir almamız gerekti, müşteri ilerlemeyi görmek istedi ya da geliştirmek istediğimiz web uygulamasının gerçektende mobil bir telefonda nasıl göründüğünü merak ettik. Yayınlama süreçleriyle uğraşmak istemiyor olabiliriz ya da henüz altyapımız hazır olmayabilir.
Örnekleri arttırmak pek tabii mümkün.
🌍İşte böylesi senaryolarda hayatımızı kolaylaştıracak uygulamamızın adı ngrok. Saniyeler içerisinde kendi lokalimizdeki bir uygulamayı dünyanın herhangi bir yerinden erişilebilir hale getirebiliriz. Hatta şifre bile koyabiliriz. Tek yapmamız gereken hangi portun izleneceğini söylemek.
📢 Ngrok kendisini şöyle tanıtıyor, NAT’ların ve güvenlik duvarlarının arkasındaki yerel sunucuları güvenli tüneller üzerinden tüm dünyada erişilebilir hale getirir.
NAT (Network Address Translation — Ağ Adresi Dönüştürme) Ağ / IP maskelemeyle birlikte, bir adres uzayını gizlemek için kullanılan teknik bir terimdir. — wikipedia
Öncelikle bu adres üzerinden resmi sitesine gidip bir hesap açmamız gerekiyor. Akabinde bizi bir dashboard ekranı karşılıyor. İşletim sistemimize uygun olan versiyonu indiriyoruz.
Zaten dashboard ekranını açılır açılmaz bizi sırasıyla izleyeceğim adımlar karşılıyor.
Zip dosyasını istediğimiz herhangi bir konuma çıkarıyoruz. Uygulamamızı çalıştırıyoruz. Yayın süresince de açık bırakmalıyız aksi halde yayın sonlanır.
Yine dashboard ekranında hali hazırda bulunan authtoken bilgisini alıp komut satırında çalıştırıyoruz.
authtoke save to configuration file gibi bir mesaj alıyorsak buraya kadar her şey yolunda demektir.
Oturumumuzu doğruladığımıza göre, şimdi tek yapmamız gereken ilgili portu dışarıya açmak kaldı.
Ben örnek bir .Net 5 API’ı oluşturdum ve default’ta swagger gelsin dedim. 5001 portunda ayağa kaldırdım.
ngrok http -host-header=localhost https://localhost:5001 ##Eğer şifre koymak istersek auth tag'ini eklememiz gerekiyor## ngrok http -auth="deneme:1234" -host-header=localhost https://localhost:5001
Yukarıdaki kodu çalıştırdığımız da aşağıdaki gibi bir görüntü elde ediyor olmamız gerekiyor. Bu artık yayında olduğumuz anlamına geliyor.
Hem httphem de https olarak sunulan linklerde herhangi birine tıklıyoruz ve uygulamamızın çalışıp çalışmadığını teyit ediyoruz.
Her şey yolunda görünüyor; istek ayrıntılarını incelemek istersek ngrok’un sunduğu arayüze http://localhost:4040/ üzerinden göz atabiliriz.
📝Özetleyecek olursak;
- ngrok’a kaydol ve güncel sürümü indir
- Bir token al.
- ngrok’u başlat ve şu komutu çalıştır ngrok authtoken YOUR_AUTHTOKEN
- Bir tünel oluştur: ngrok http -host-header=localhost https://localhost: 5001
Bitirmeden önce şunu belirtmeliyim ki ngrok ücretli bir uygulamadır , ücretsiz özellikleri kısıtlıdır. Ücretli ve ücretsiz versiyonlar arasında farklılıkları pricing sekmesinden inceleyebilirsiniz.
Ayrıca; ngrok en kolay ve en iyi bilinen localhost tünel açma hizmetidir, ancak alternatif seçenekler mevcuttur:
- LocalXpose : ücretsiz seçeneklere sahip ticari bir hizmet. Kayıt gereklidir, ancak terminal tabanlı ve grafik kullanıcı arayüzü mevcuttur.
- localhost.run : SSH üzerinden çalışan ücretsiz bir hizmettir, bu nedenle istemci veya kayıt gerekmez.
- localtunnel : açık kaynaklı bir Node.js istemcisi. Kayıt gerekli değildir.
- JPRQ : açık kaynaklı bir Python istemcisi. Kayıt gerekli değildir.
- sish : açık kaynaklı, Docker tabanlı bir kapsayıcı istemcisi. Kayıt gerekli değildir.
Umarım ufakta olsa faydam dokunmuştur. Bir sonraki yazıda görüşmek üzere.