IPv4 adresiniz:
İşletim sistemi:
Sağlayıcı:

localhost nedir? Loopback, 127.0.0.1 ve ::1

localhost normalde isteğin yapıldığı makinenin kendisini ifade eder. Bilinen adresleri IPv4'te 127.0.0.1, IPv6'da ::1'dir. Bu adreslere giden trafik ev yönlendiricisinden geçip internete çıkmaz; makinenin kendi ağ yığını içinde kalır. Bu yüzden localhost testi tek ve dar bir soruyu yanıtlar: hizmet bu makinede çalışıyor mu?

Loopback adres aralıkları

IPv4'te 127.0.0.0/8 bloğunun tamamı loopback için ayrılmıştır; yine de örneklerde neredeyse her zaman 127.0.0.1 kullanılır. IPv6'da ise özel ::1/128 adresi vardır. Bunların rolleri RFC 1122 ve RFC 4291 içinde açıklanır. localhost adı genellikle yerel sistem yapılandırması aracılığıyla bu adreslere çözümlenir. Uygulama önce IPv4'ü veya IPv6'yı deneyebilir; dolayısıyla birinde çalışıp diğerinde çalışmaması tüm ağın bozuk olduğunu göstermez.

Yerel bir web sunucusu örneği

Bir geliştirici 127.0.0.1:8000 adresinde dinleyen bir uygulama başlatıyor ve aynı bilgisayarda http://localhost:8000 adresini açıyor. Bu, uygulamayı diğer cihazlara açmadan yapılabilecek kullanışlı bir testtir. Aynı Wi-Fi ağındaki bir telefonda localhost:8000 açılırsa telefon geliştiricinin bilgisayarına değil, kendisine bağlanmaya çalışır. Uygulamaya telefondan erişmek için hizmetin uygun bir ağ arayüzünde dinlemesi, güvenlik duvarının bağlantıya izin vermesi ve telefonun bilgisayarın LAN adresini kullanması gerekir. Bir geliştirme sunucusunu uygun koruma olmadan internete açmayın.

Dinlenen adres ve dışarıdan erişim

Yalnızca 127.0.0.1 veya ::1 adresine bağlanmış bir hizmete başka bir cihazdan doğrudan erişilemez. IPv4'te 0.0.0.0 adresine bağlanmak genellikle tüm IPv4 arayüzlerinde dinlemek demektir; ama bu da dışarıdan erişimi garanti etmez. Güvenlik duvarları, konteynerler, NAT ve sağlayıcı kuralları yolu engelleyebilir. IPv6'daki benzer davranış uygulamaya ve sistem ayarlarına bağlıdır. İnternet üzerinden yapılan bir port kontrolü, yalnızca loopback'te dinleyen bir hizmetin yerelde çalışıp çalışmadığını doğrulayamaz. Önce yerelde test edin, ardından her ağ sınırını ayrı ayrı sınayın.

Konteynerlerde ve sunucularda sık yapılan bir hata

Bir konteynerin içinde veya uzak bir sunucuda localhost, dizüstü bilgisayarınızı değil o konteyneri ya da sunucuyu ifade eder. Bu yüzden localhost'u gösteren bir veritabanı bağlantı dizesi yerel geliştirmede sorunsuz çalışır; ama dağıtımdan sonra veritabanı başka bir makinedeyse çalışmaz. Teşhis için önce istemcinin nerede çalıştığını belirleyin, ardından hedef ana bilgisayar adını, portu ve hizmetin dinlediği adresi kontrol edin. Dışarıya açıklığı değerlendirmeden localhost yerine genel bir IP yazmayın. İç iletişim için çoğu zaman özel bir ağ adresi veya hizmete özgü bir ana bilgisayar adı gerekir.