| Port Forwarding Nedir | |||||
| Port Forwarding'i anlamak için önce NAT teknolojisini bir hatırlayalım:
Yerel ağda bilgisayarınızdan bir istek gönderdiğinizde bu istek önce router'ınızın ethernet
(eth0) arayüzüne gelir. Sonra router'ınız yaptığınız istek için NAT tablosuna bir kayıt girer.
Bu kayıtta isteği yapan bilgisayarın yerel IP'si ve isteğin kendisi yer alır. En sonunda istek
internete gönderilir. İsteğe internetten yanıt gelince router yanıt paketini yerel ağdaki hangi
makinaya yollayacağını NAT tablosunda tuttuğu kayda göre belirler ve ilgili bilgisayara
yanıtı gönderir. Router'ın yaptığı yerel IP'den gelen paketi public IP ile yollama ve public
IP'den gelen paketi karıştırmadan doğru yerel IP'ye gönderme işlemine Network Address
Translation (NAT) adı verilir.
NAT'ın yukarıda bahsedilen özelliğinin yanı sıra bir de güvenliğe bakan yönü vardır. NAT sayesinde içeriden bir istek olmadıkça dışarısı içeriye erişemeyecektir. Çünkü içeriden bir istek olmadığında NAT tablosu bir kayda sahip olmayacaktır ve bu yüzden dışarıdan gelen paketler içeriye yönlendirilmeyeceklerdir. Yani paketlerin hedefi sadece router'ımız olacaktır. Dolayısıyla eğer iç ağda web sunucumuz varsa dışarıdakiler public IP üzerinden bağlanma talebinde bulunduklarında router'ımıza takılacaklardır. Bu sorunu aşmak için router'ın port forwarding, yani port yönlendirme özelliği kullanılır. Port Forwarding dışarıdan gelen bağlantıların iç ağımızdaki hangi bilgisayara yönlendirilmesi gerektiğini söylemenin bir yoludur. Örneğin bir web sitesine bağlanmak istediğimizde http request paketlerimiz önce web server'ın önündeki router'a uğrar. Şayet o router port 80'nini iç ağındaki web sunucusuna yönlendirmişse http request paketlerimiz router'dan geçip web sunucusuna varır ve dönen http response ile web içeriğini çekeriz. Port forwarding'i yapabilmek için router'ın ayarlarından port yönlendirme menüsüne geçip iç ağdaki web sunucusunun yerel IP'sini ve port numarasını girmemiz yeterlidir. Böylece router'ımızın ayarlarda belirttiğimiz portuna gelen paketler iç ağdaki yine belirtilen cihaza yönleneceklerdir.
Yukarıdaki resimde gösterilen yerel ağda bir web sunucusu yer almaktadır. Dışarıdan gelen ve hedef port numarası 80 olan paketler (yani tarayıcıdan public IP'ye yapılan http request'ler) router'ın 80nci portuna girerler ve sonra yönlendirme kuralı gereği yerel ağdaki web sunucusunun 80nci portuna yönlenirler. Yerel ağdaki sunucu http response'la karşılık verir ve istemci web içeriğini çeker. Normal koşullarda router'ın public IP'sini tarayıcının adres çubuğuna tuşlayan kullanıcılar router'a takılırlar ve arkasındaki sunucuya ulaşamazlar. Ancak port forwarding ile istemciler router'ın arkasındaki cihazlara erişebilmektedirler. Yukarıdaki resimde ayrıca bir başka sunucu daha gösterilmektedir. O sunucuya ise dışarıdan port 27015 kullanılarak erişim sağlanabilir. Yani router cihazı port forwarding ile kendi yerel ağındaki birden fazla sunucuyu dışarıya açabilmektedir. Benim Not: Router'larda port forwarding gibi bir de DMZ özelliği vardır. Port Forwarding gibi DMZ özelliği de router'ın arkasındaki yerel cihazlara erişimi mümkün kılan bir methoddur, fakat DMZ 'te dışarıdan gelen paketler router'ın içindeki firewall'la muhatap olmadan direk iç network'e girdiklerinden bu yöntem saldırı riski taşımaktadır. Port Forwarding Nasıl Yapılır? (*) Birebir denenmiştir ve anlatılanlar harfiyen gerçekleşmiştir. Şimdi localhost'unu açtığım iç ağımızdaki annemin laptop'ını port forwarding ile dış ağa görünür kılalım. Böylece dışarıdan tarayıcı ile public IP'mize bağlanan kişiler iç ağımızdaki annemin laptop'ındaki localhost'unu görebilsinler. Bunun için öncelikle Netmaster markalı router'ımızın arayüzüne giriş yapalım.
http://192.168.0.1
Ardından Gelişmiş -> Yönlendirme menülerine geçelim. Daha sonra “IPv4 Oluştur” butonuna basalım ve port yönlendirme parametrelerine değerleri girelim:
Local IP yerine localhost'u açık olan ve dış ağda görünür kılmak istediğim annemi laptop'ının IP'sini girelim. Port'ların hepsine ise 80 yazalım. Diğer parametreler de resimde görüldüğü gibi olmalıdır. Uygula butonuna basıldığında port yönlendirme kuralı router'ımıza verilmiş olur. Böylece dışarıdan 80nci porta bağlanmak isteyenler önce router'ın 80nci portuna, oradan da yerel makinamın 80nci portuna erişeceklerdir ve localhost dizinini ekranlarına çekeceklerdir. Şimdi konfigurasyonda bir ufak ayrıntı kaldı, o da Gelişmiş -> Seçenekler menüsünde yer alan “WAN Engelleme” checkbox'ındaki tick'i kaldırmaktır.
Böylece yapılandırma ayarı bitmiş bulunmaktadır. Şimdi yapılan konfigurasyonlar işe yarıyor mu diye test etmek için tor tool'unu kullanarak dışarıdan içerideki localhost'u olan bilgisayarımıza erişmeye çalışalım. sudo su tor proxychains firefox Tor tool'u kullanılarak açılan firefox tarayıcısında yapılacak her http request paketi tor ağından geçecektir ve tor ağındaki en son düğümden çıkıp hedef sunucuya gidecektir. Böylece dışarıdaki bir makina bizim yerel makinemize erişmeye çalışıyor gibi olacaktır. Açılan firefox adres çubuğuna public IP'mizi girelim (What is my IP address türü sitelere göre public IP'miz 24.133.207.165 imiş).
Firefox:
http://24.133.207.165 Yukarıdaki linki tor kullanan firefox tarayıcısında enter'landığımızda ekrana yerel ağımdaki bilgisayarın localhost dizini maalesef gelmeyecektir. Bunun bir nedeni var. O nedene geçmeden önce adım adım gidelim. Router'ımızın arayüzüne tekrar dönelim ve Temel -> Kurulum menülerine geçiş yapalım. Orada WAN IP diye bir başlık göreceksin.
WAN demek Internet demek. O halde WAN IP de Public IP olmalıdır. Ancak “what is my ip address” gibi sitelerin hepsi Public IP olarak WAN IP 'nden farklı bir IP sunmaktalar. Yukarıdaki konfigurasyon ayarları sonrası WAN IP'yi tarayıcımın adres çubuğuna girdiğimde localhost dizini gelirken tor ile WAN IP'yi tarayıcımın adres çubuğuna girdiğimde localhost dizini ekrana gelmemiştir. Yani halen dışarıdan içeriye erişim gerçekleştirilemedi.
İç ağdaki Asus laptop'ımdan router'a ait WAN IP'yi adres çubuğuna girdiğimde normalde router'a takılmam gerekir ve sayfa görüntülenemiyor olması gerekir. Ama router cihazına koyduğumuz port forwarding kuralı çalıştığı için olsa gerek beni router'ın arkasındaki annemin bilgisayarına yönlendirdi ve cevap olarak annemin bilgisayarındaki localhost web içeriğini alabildim. Demek ki port forwarding kuralı çalışıyor. Peki neden Public IP ile aynı sonuca ulaşamıyoruz? Bu sorunun cevabı WAN IP ve Public IP neden aynı değil sorusunda saklı. Yaptığım araştırma sonrası şu sonuca ulaşmış bulunmaktayım: Public IP'miz statik olmadığı için dışarıdaki bilgisayarlar yerel bilgisayarımızın localhost'una bağlanamıyorlar. Bunu daha izahlı anlatan şu iki adam bakın ne diyor:
If WAN IP and Public IP is different, then there are two routers doing NAT consecutively.
First one is using WAN IP and second one is using public IP. If you don't pay money for
static Public IP, then your ISP gives your router a NAT IP.
If your ISP assigns you a private IP address, then you're out of luck with reaching your network from outside. The problem is that if you visit any of the web pages that claim to tell you your IP address, they will tell you the IP address your ISP is NATing you behind". Sure you cannot connect to such a NAT IP address of your ISP! I contact ISP, they saying , must by static IP from them. Well, if a static IP address is the only option they offer, you may consider to go for this. Yani ISP 'deki router evimdeki router'a NAT'lama yaparak bana WAN IP vermiş. Yani ardarda iki router var ve ikisi zincirleme NAT'lama yapıyor. Bu nedenle WAN IP'im private oluyormuş. Aynı şeyi şu adam da diyor:
Giving you a private static IP wouldn't accomplish anything. It has to be public IP or you can't port forward.
Yukarıda ardarda NAT yapan iki router olayı gösterilmektedir. Dolayısıyla denilene göre eğer ISP'den statik IP alırsam bu sorun ortadan kalkacakmış ve yukarıdaki ayarlamalar sonrası port forwarding işlemi çalışacakmış. Bu konuda başka paylaşımlarda bulunanlar da bu varılan sonucu teyit ediyorlar:
Söylediğin tüm konfigurasyonları yaptım ama işe yaramıyor. Port açılmıyor bir türlü. [Edit] Az önce aradım ve öğrendim. Sadece sabit ip'ye port açabiliyormuşuz. O da 3 tl imiş. Sonuç olarak port forwarding yapabilmek için yukarıdaki ayarlamalarla beraber statik public IP satın almak gerektiğimizi anladık. Fakat başka kaynaklarda son bir konfigurasyondan daha bahsediliyor ki o konfigurasyon iç ağımızdaki cihazın yerel IP'sini statik tanımlama ayarıdır. Router'a port forwarding kuralı koyarken dışa görünür kılacağın iç ağdaki cihazın “yerel IP”sini eklemektesin. Fakat eğer bu iç ağdaki cihazın yerel IP'si statik tanımlanmazsa cihaz router'dan belli bir müddet sonra yeni IP alabilir ve port forwarding kuralını geçersiz kılabilir. Çünkü port forwarding kuralı eski IP'ye yönlendirme yapacaktır. Eğer port forwarding kuralını güncellemezsen dışarıdan gelen paketler olmayan bir yerel IP'ye gönderilmeye çalışılacaktır ve boşa gitmiş olacaktır. Bu durumdan kaçınmak için dışa görünür yapılacak cihazın yerel IP'si statik olarak tanımlanmalıdır. Port Forwarding işleyişinin kusursuzca gerçekleşmesi için
Yararlanılan Kaynaklar
|
|||||
Bu yazı 02.03.2026 tarihinde, saat 09:06:36'de yazılmıştır.
02.03.2026 tarihi ve 06:27:12 saatinde ise güncellenmiştir. |
|||||
|
|||||
| Yorumlar |
|||||
| Henüz yorum girilmemiştir. | |||||
| Yorum Ekle | |||||
Bu yazı 02.03.2026 tarihinde, saat 09:06:36'de yazılmıştır.
02.03.2026 tarihi ve 06:27:12 saatinde ise güncellenmiştir.