İçeriğe geç
ipkontrol.net

IP Temelleri

127.0.0.1 (Localhost) Nedir?

Geri döngü adresinin ne işe yaradığı, localhost testleri ve neden dışarıdan erişilemediği.

127.0.0.1, bir bilgisayarın kendisini gösteren adres. Bu adrese gönderilen paket hiçbir kabloya, hiçbir modeme gitmiyor; işletim sisteminin içinde dönüp aynı bilgisayara geri geliyor. Bu yüzden adı geri döngü (loopback), takma adı da localhost.

Her bilgisayarda aynı adres. Sizin 127.0.0.1'iniz sizin bilgisayarınız, başkasınınki onun bilgisayarı. Dışarıdan bu adrese ulaşmanın yolu yok, çünkü dışarıdan bakan için de 127.0.0.1 kendi makinesi.

Yalnızca bir adres değil, koca bir blok

IPv4'te geri döngüye ayrılan alan 127.0.0.0/8: 127 ile başlayan on altı milyonu aşkın adresin hepsi. 127.0.0.1 yalnızca en çok kullanılanı. 127.0.0.2 ya da 127.5.5.5 da aynı yere gidiyor. Blok gösteriminin ne anlama geldiğini CIDR yazısında anlattık.

IPv6'da ise tek bir geri döngü adresi var: ::1. Yazımı kısa ama anlamı aynı.

AdresAnlamıDışarıdan erişilir mi
127.0.0.1Bu bilgisayar (IPv4)Hayır
::1Bu bilgisayar (IPv6)Hayır
0.0.0.0Dinlerken: tüm arayüzler. Hedef olarak: geçersizBağlama biçimine göre
192.168.1.xEv ağındaki yerel adresYalnızca aynı ağdan
169.254.x.xAdres alınamadığında kendi kendine atanan adresYalnızca aynı kablo

Son satır sık karıştırılıyor. 169.254 ile başlayan adres görüyorsanız bilgisayar modemden adres alamamış demektir; bu bir arıza işareti, geri döngüyle ilgisi yok. Ev ağındaki adreslerin mantığını genel IP ile yerel IP farkı yazısında bulabilirsiniz.

Ne işe yarıyor?

  • Yazılım geliştirme. Web sitesini internete koymadan önce kendi bilgisayarınızda çalıştırıp tarayıcıdan http://127.0.0.1:8000 gibi bir adresle açıyorsunuz.
  • Yalnızca yerel servisler. Veritabanı, yazıcı yönetimi, bazı güvenlik yazılımlarının paneli yalnızca bu adreste dinliyor; ağdaki başka biri bağlanamıyor.
  • Engelleme. Bir alan adını 127.0.0.1'e yönlendirmek, o adrese yapılan isteği hiçbir yere göndermemek demek. Reklam ve zararlı alan adı listeleri bu yöntemi kullanıyor.
  • Test. Programın ağ kodunu gerçek ağa çıkmadan denemek için.

Sondaki :8000 port numarası; aynı adreste birden fazla servisin ayrı kapılardan dinlemesini sağlıyor. Port kavramını ayrı bir yazıda anlattık.

"ping 127.0.0.1" neyi test eder, neyi etmez?

Eski sorun giderme rehberlerinde ilk adım budur. Yanıt geliyorsa bilgisayarın ağ yazılımı, yani TCP/IP yığını çalışıyor demektir.

Ama paket ağ kartına hiç inmediği için ağ kartının, kablonun ya da Wi-Fi'ın sağlam olduğunu kanıtlamıyor. Kablo kopuk olsa bile 127.0.0.1'e ping başarılı döner. Donanımı test etmek için modemin adresine ping atmak gerekiyor; komutlar ping komutu yazısında.

Bilgisayarda açılıyor, telefonda açılmıyor

Geliştiricilerin en sık takıldığı yer burası. Bilgisayarda bir sunucu başlatıyorsunuz, tarayıcıda açılıyor. Telefondan bilgisayarın yerel adresini yazıyorsunuz, açılmıyor.

Sebep, sunucunun hangi adrese bağlandığı:

Sunucu nerede dinliyorBilgisayardanAynı ağdaki telefondan
127.0.0.1AçılırAçılmaz
0.0.0.0AçılırAçılır (güvenlik duvarı izin verirse)
192.168.1.20Yalnızca bu adresleAçılır

Pek çok geliştirme aracı güvenlik için varsayılan olarak 127.0.0.1'de dinliyor. Telefondan erişmek istiyorsanız aracın "host" ayarını 0.0.0.0 yapmak ve bilgisayarın güvenlik duvarında o porta izin vermek gerekiyor. Windows tarafı için Windows Defender güvenlik duvarı yazısına bakın. Ortak bir ağdayken bunu açık bırakmayın.

localhost her zaman 127.0.0.1 değil

"localhost" bir ad; bilgisayar onu adrese çeviriyor. Günümüz işletim sistemlerinde bu ad hem 127.0.0.1'e hem ::1'e karşılık geliyor ve bazı programlar önce IPv6'yı deniyor.

Sunucu yalnızca IPv4'te dinliyorsa sonuç kafa karıştırıcı: http://127.0.0.1:3000 açılıyor, http://localhost:3000 "bağlantı reddedildi" diyor. Çözüm ya adresi açıkça yazmak ya da sunucuyu iki protokolde de dinletmek. IPv6 adreslerinin neden öncelik aldığını ayrıca anlattık.

Bu eşleme hosts dosyasında duruyor. Windows'ta C:\Windows\System32\drivers\etc\hosts, macOS ve Linux'ta /etc/hosts. Dosyada localhost satırı silinmiş ya da değiştirilmişse bazı programlar garip biçimde bozuluyor.

Sorgulama aracında 127.0.0.1 görmek

Bir site size "IP adresiniz 127.0.0.1" diyorsa adresiniz o değil. Karşı taraf isteği kendi makinesindeki bir aracıdan almış ve gerçek adresi okuyamamıştır. Genellikle sitenin yapılandırma hatası; bazen de bilgisayarınızda yerel bir proxy çalıştığının işareti. Kendi genel adresinizi sorgulama aracında görebilirsiniz.

Tarayıcınızın proxy ayarında 127.0.0.1 ve bir port yazıyorsa trafik bilgisayardaki bir programdan geçiyor demektir. Bunu siz kurmadıysanız Windows proxy ayarları yazısındaki kontrolü yapın.

Sıkça sorulan sorular

127.0.0.1 nedir?

Bilgisayarın kendisini gösteren geri döngü adresidir. Bu adrese giden paket ağ kartına inmeden işletim sisteminin içinde döner. Her bilgisayarda aynıdır ve dışarıdan erişilemez.

localhost ile 127.0.0.1 aynı şey mi?

Çoğu zaman evet. localhost bir addır ve hem 127.0.0.1’e hem IPv6’daki ::1’e karşılık gelir. Sunucu yalnızca IPv4’te dinliyorsa localhost adresi bağlantı hatası verirken 127.0.0.1 çalışabilir.

127.0.0.1’e ping atmak internetin çalıştığını gösterir mi?

Hayır. Yalnızca bilgisayarın ağ yazılımının çalıştığını gösterir. Paket ağ kartına hiç inmez; kablo kopuk olsa bile yanıt gelir.

Telefondan bilgisayardaki yerel siteyi neden açamıyorum?

Sunucu büyük olasılıkla 127.0.0.1’de dinliyor. Bu adres yalnızca bilgisayarın kendisinden erişilebilir. Sunucuyu 0.0.0.0’da dinletip güvenlik duvarında o porta izin vermek gerekir.

Başkası benim 127.0.0.1 adresime bağlanabilir mi?

Hayır. 127.0.0.1 her makinede o makinenin kendisidir. Dışarıdan bu adrese yapılan istek karşı tarafın kendi bilgisayarına gider.