NGROK Kurulumu ve Localhostu İnternete Açmak

Ngrok ile localhost üzerinde yer alan projelerinizi, sitelerinizi, sunucularınızı ve herhangi bir URL adresinizi NAT ve Firewall engeli olmadan güvenli bir şekilde internete açabilirsiniz. Üstelik kurulumu ve kullanımı hiç tahmin etmediğiniz kadar kolay.

İnternetteki herhangi bir yerden evinizdeki localhost’a bağlanabilmek için daha önce DDNS İle İnternetten Evdeki Bilgisayara Bağlanma isimli makalemi paylaşmıştım. Bu yazıda modeminiz üzerinden port forwarding yaparak modemin gerisinde kalan ev ağınızdaki herhangi bir IP:PORT adresine bağlanabiliyorsunuz. Şimdi ise bu yöntemden kat be kat daha kolay bir çözüm ile seviyeyi yükseltiyoruz.

Ngrok, NAT’ların ve güvenlik duvarlarının arkasındaki yerel sunucuları güvenli tüneller üzerinden halka açık internete çıkarır. Üstelik HTTPS ve Authenticated acces ile güvenli ve parola korumalı bir bağlantı kurmasıda en önemli avantajlarından birisidir.

Ngrok kurulumu yaparak başlayalım.

1. Ngrok Kurulumu

Ngrok cross-platform’dur ve Windows, MacOS, Linux ve FreeBSD işletim sistemlerinde çalışır. Windows ortamında kurulum yapacağımız için https://ngrok.com/download adresine giderek dosyayı indiriniz ve arşivden çıkarınız.

Ardından Signup butonundan siteye kayıt oluyoruz ve Your Authtoken sayfasından token’ımızı not alıyoruz.

ngrok.exe dosyamızın olduğu dizinde cmd çalıştırarak token’ımızla birlikte aşağıdaki komutu çalıştırıyoruz. Böylece ngrok authentication işlemini tamamlamış oluyoruz.

ngrok authtoken [token]

2. Ngrok ile Localhost’a HTTP(S) Tünel Açmak

Artık localhost üzerinde bulunan dilediğimiz bir HTTP adresi internete tünel açarak yayınlayabiliriz. Bu örnekte 127.0.0.1:8080 üzerinde çalışan Jenkins sunucumu internete açmak istiyorum. Bunun için yine ngrok.exe nin olduğu dizinde cmd çalıştırarak şu komutu kullanmamız gerekiyor.

ngrok http 8080

Bu komut ile localdeki 8080 portumuza bir adres atanıyor ve bu adresle internetten local sunucumuza erişebiliyoruz.

cmd çıktısında da gördüğünüz gibi http://6fbd-31-206-15-52.ngrok.io ve https://6fbd-31-206-15-52.ngrok.io adresleri artık bize atanmış durumda. Bu adreslerden gittiğimizde Jenkins sunucumuzu göreceğiz.

Gelen istekleri ve ağ durumunu cmd üzerinden takip edebiliriz.

Tabi ngrok burada güzel bir araç daha sunuyor. Bir tünel açtığınızda localhost:4040 adresi üzerinden açılan tünel adresini ve durumunu inspect edebilirsiniz.

3. Parola Korumalı Tünel Açmak

Açtığımız tüneli parola ile koruma altına alabiliriz. Bunun için -auth="username:password" parametresi ekliyoruz.

ngrok http 8080 -auth="kerteriz:blog"

Ve işte bu kadar.

4. TCP Tünel İle Uzaktan SSH

Yine localhostunuzda yer alan Linux cihazlar, Raspberry pi gibi aygıtlara da internetten SSH ile bağlanabilmek için Ngrok TCP tüneli sunuyor. Aşağıdaki örnek kodla istediğiniz bir porta tünel açabilirsiniz.

ngrok tcp 22

4. Diğer Özellikler

Ngrok Tutorials sayfasında daha birçok özellik mevcut. Tabi bunlardan bazıları free abonelikte bulunmuyor. Yeri gelmişken free pakette eş zamanlı sadece 4 tünel açabildiğinizi de belirtelim. Diğer paketleri ve özellikleri incelemek için Billing sayfasını inceleyebilirsiniz.