127.0.0.1 ve 0.0.0.0 arasındaki fark nedir?


234

127.0.0.1’in işaret ettiğini localhostve 0.0.0.0’ın (yanlış olduğumda beni düzeltmesi) olduğunu da anlıyorum. Peki, 127.0.0.1 ve 0.0.0.0 arasındaki fark nedir?


1
Adres girişinde nasıl işlem yapılacağı hakkındaki bu Chrome hata izleyici tartışması ilginizi çekebilir 0.0.0.0.
Jeremy Banks,

6
Çoğu sunucu konfigürasyonunda 0.0.0.0, TÜM adresleri dinleyin! Bu, sunucunuzu internette kullanıma sunacaktır. Herhangi bir güvenlik olmadan bazı yerel sunucu için bunu yaparsanız (sadece localhost dinliyor, değil mi?) Bu kötü. Yapma bunu!
Josef

56
Sorunuzu tam anlamıyla cevaplayın, fark 2130706433.
Shaz

2
@Mast oh, güvenlik duvarı hepsini çözeceği için tamamen güvensiz bir sistem kuran insanlardan birisiniz? Genellikle bu sistemler shodan.io ile bulunabilir : 3 Bu zihniyetin bir sonraki seviyesi "tamamen 5 yıllık bir WordPress kurulumunu kullanabiliriz, bir WAF aldık". Hiç kimsenin bu yola girmesini önermiyorum!
Josef

2
@Shaz Yorumunuzu yapmak istiyorum ancak şu anda 42 yaşında olduğu için bunu yapmak için kendimi getiremiyorum ...
Jenny D

Yanıtlar:


221

127.0.0.1 ve 0.0.0.0 arasındaki fark nedir?

  • 127.0.0.1 geridöngü adresidir (ayrıca localhost olarak da bilinir).

  • 0.0.0.0 geçersiz, bilinmeyen veya uygulanabilir olmayan bir hedef (belirli bir adres yer tutucusu yok) belirlemek için kullanılan, yönlendirilemeyen bir meta adresidir.

    Bir rota girişi bağlamında, genellikle varsayılan rota anlamına gelir.

    Sunucular bağlamında, 0.0.0.0 "yerel makinedeki tüm IPv4 adresleri" anlamına gelir. Bir ana bilgisayarın iki ip adresi varsa, 192.168.1.1 ve 10.1.2.1 ve ana bilgisayarda çalışan bir sunucu 0.0.0.0'da dinlerse, bu IP'lerin her ikisinde de erişilebilir olacaktır.


IP adresi 127.0.0.1 nedir?

127.0.0.1, “localhost” olarak da adlandırılan geridöngü Internet protokolü (IP) adresidir. Adres, son kullanıcı tarafından kullanılan aynı makine veya bilgisayara bir IP bağlantısı kurmak için kullanılır.

Aynı kural, :: 1 çağrışımını kullanarak IPv6 adreslemeyi destekleyen bilgisayarlar için de tanımlanmıştır. 127.0.0.1 adresini kullanarak bağlantı kurmak en yaygın uygulamadır; ancak, 127 aralığında herhangi bir IP adresini kullanarak . . * aynı veya benzer şekilde çalışacaktır. Geridöngü yapısı, makinedeki IP yığınını doğrulama veya doğrulama yeteneğini ağa bağlayabilen bir bilgisayar veya cihaz sağlar.

Kaynak: 127.0.0.1 - Kullanım Alanları ve Niçin Önemli?


Özel Adresler

A sınıfı (127) ağ numarasına "geridöngü" işlevi atanır, yani daha yüksek düzeyde bir protokol tarafından bir ağ (127) adresine gönderilen bir datagram, ana bilgisayar içinde geri dönmelidir. Bir ağa 127 "gönderilen" hiçbir datagram, hiçbir yerde herhangi bir ağda görünmemelidir.

Kaynak: Ağ Numaraları


Eğer bütün A sınıfı ise, son üç sekizli için diğer isteğe bağlı değerlerin anlamı nedir?

Geridöngü aralığının amacı, bir ana bilgisayarda TCP / IP protokolü uygulamasının test edilmesidir. Alt katmanlar kısa devre olduğundan, geridönüşüm adresine gönderme, yüksek katların (IP ve üstü) kendilerini gösteren alt katlarda sorun yaşanmadan etkin bir şekilde test edilmesini sağlar. 127.0.0.1, test amaçlı olarak en sık kullanılan adrestir.

Kaynak: IP Ayrılmış, Geri Döngü ve Özel Adresler

Daha fazla bilgi için https://askubuntu.com sorusuna bakın . Geridöngü aygıtı nedir ve nasıl kullanırım? ve neden geridöngü IP adresi 127.0.0.1 - 127.255.255.254? .


IP adresi 0.0.0.0 nedir?

"0.0.0.0" geçerli bir adres sözdizimidir. Bu nedenle, geleneksel noktalı ondalık göstergede bir IP adresinin beklendiği yerlerde geçerli olarak ayrıştırılmalıdır. Ayrıştırıldığında ve uygulanabilir sayısal forma dönüştürüldükten sonra, değeri daha sonra ne olacağını belirler.

Tamamen sıfır değerinin özel bir anlamı vardır. Bu yüzden “geçerli”, ancak belirli durumlar için uygun olmayan (ve dolayısıyla geçerli olmadığı gibi) kabul edilebilecek bir anlamı var. Temelde "belirli bir adres yok" yer tutucusudur. Ağ bağlantılarının adres olarak bağlanması gibi şeyler için sonuç, bağlantıya uygun bir arayüz adresi atamak olabilir. Bir arayüzü yapılandırmak için kullanıyorsanız, bunun yerine arayüzden bir adres kaldırabilir. Gerçekten "belirli bir adres yok" un ne yaptığını belirlemek için kullanım bağlamına bağlıdır.

Bir rota girişi bağlamında, genellikle varsayılan rota anlamına gelir . Bu, karşılaştırılacak bitleri seçen adres maskesinin bir sonucu olarak gerçekleşir. "0.0.0.0" maskesi bir bit seçmez, bu nedenle karşılaştırma her zaman başarılı olur. Dolayısıyla, böyle bir rota yapılandırıldığında, paketlerin gitmesi için her zaman bir yer vardır (geçerli bir hedefle yapılandırılmışsa).

Bazı durumlarda, yalnızca "0" da çalışır ve aynı etkiye sahiptir. Ancak bu garanti edilmez. "0.0.0.0" formu "özel adres yok" demenin standart yoludur (IPv6'da ":: 0" veya sadece "::").

Kaynak: IP adresinin anlamı 0.0.0.0 nedir?


İnternet Protokolü sürüm 4'te 0.0.0.0 adresi geçersiz, bilinmeyen veya uygulanabilir olmayan bir hedef belirlemek için kullanılan yönlendirilemez bir meta adresidir. Aksi takdirde geçersiz bir veri parçasına özel bir anlam vermek, bant içi sinyalleşmenin bir uygulamasıdır.

Sunucular bağlamında, 0.0.0.0 "yerel makinedeki tüm IPv4 adresleri" anlamına gelir. Bir ana bilgisayarın iki ip adresi varsa, 192.168.1.1 ve 10.1.2.1 ve ana bilgisayarda çalışan bir sunucu 0.0.0.0'da dinlerse, bu IP'lerin her ikisinde de erişilebilir olacaktır.

Yönlendirme bağlamında, 0.0.0.0 genellikle varsayılan yol anlamına gelir; yani, yerel ağda bir yer yerine İnternetin "geri kalanına" yol açan yol.

Kullanım alanları:

  • Bir ana bilgisayara, henüz bir adres atanmamışsa, kendisine ait olduğunu iddia ettiği adres. DHCP kullanırken ilk DHCPDISCOVER paketini gönderirken.
  • Ana bilgisayarın IP yığını bunu desteklemesi koşuluyla, DHCP üzerinden adres isteği başarısız olduğunda bir ana bilgisayarın kendisine atadığı adres. Bu kullanım modern işletim sistemlerinde APIPA mekanizmasıyla değiştirildi.
  • "Herhangi bir IPv4 ana bilgisayarını" belirtmenin bir yolu. Varsayılan bir rota belirlerken bu şekilde kullanılır.
  • Hedefin kullanılamayacağını açıkça belirtmenin bir yolu. 1
  • "Herhangi bir IPv4 adresini" belirtmenin bir yolu. Sunucuları yapılandırırken (yani dinleme soketlerini bağlarken) kullanılır. Bu, TCP programcıları tarafından INADDR_ANY olarak bilinir. (Ciltleme (2), arabirimlere değil adreslere bağlanır.)

IPv6'da, tüm sıfırlar adresi "::" olarak yazılır.

Kaynak: 0.0.0.0


DHCP Keşfi / İsteği

Bir müşteri ilk kez önyüklendiğinde, Başlatma durumunda olduğu söylenir ve Kullanıcı Veri Birimi Protokolü (UDP) bağlantı noktası 67 (BootP sunucusu) üzerinden yerel fiziksel alt ağında bir DHCPDISCOVER mesajı iletir. İstemci, ait olduğu alt ağı bilmenin bir yolu olmadığından, DHCPDISCOVER, kaynak IP adresleri 0.0.0.0 olan bir tüm alt ağlardır (hedef IP adresi 255.255.255.255). İstemci yapılandırılmış bir IP adresine sahip olmadığından kaynak IP adresi 0.0.0.0'dır.Bu yerel alt ağda bir DHCP sunucusu varsa ve doğru yapılandırılmış ve çalışıyorsa, DHCP sunucusu yayını duyacak ve bir DHCPOFFER mesajı ile yanıt verecektir. Yerel alt ağda bir DHCP sunucusu yoksa, DHCPDISCOVER mesajını DHCP sunucusu içeren bir alt ağa iletmek için bu yerel alt ağda bir DHCP / BootP Relay Agent olmalıdır.

Bu aktarma aracısı özel bir ana bilgisayar (örneğin, Microsoft Windows Server) veya yönlendirici (örneğin, arabirim düzeyinde IP yardımcı ifadeleriyle yapılandırılmış bir Cisco yönlendirici) olabilir.

...

İstemci bir DHCPOFFER aldıktan sonra, DHCPOFFER'daki parametreleri kabul etme niyetini belirten bir DHCPREQUEST mesajı ile yanıt verir ve Talep durumuna geçer. İstemci, orijinal DHCPDISCOVER mesajını alan her DHCP sunucusundan biri olan birden fazla DHCPOFFER mesajı alabilir. İstemci bir DHCPOFFER seçer ve yalnızca tüm DHCPOFFER mesajlarını dolaylı olarak reddederek yalnızca bu DHCP sunucusuna yanıt verir. İstemci, seçilen sunucuyu, Sunucu Tanımlayıcı seçenek alanını DHCP sunucusunun IP adresiyle doldurarak tanımlar. DHCPREQUEST ayrıca bir yayındır, bu nedenle DHCPOFFER gönderen tüm DHCP sunucuları DHCPREQUEST'i görecek ve her biri DHCPOFFER'ının kabul edilip edilmediğini veya reddedileceğini bilecektir. İstemcinin istediği ek yapılandırma seçenekleri DHCPREQUEST mesajının seçenekler alanına dahil edilecektir.Müşteriye bir IP adresi verilmiş olmasına rağmen, DHCPREQUEST mesajını 0.0.0.0 kaynak IP adresiyle gönderecektir. Şu anda, istemci henüz IP adresini kullanmanın açık olduğu doğrulamasını almadı.

...

İstemci ve DHCP Sunucusunun Aynı Alt Ağ Üzerinde Oturduğu Yerin İstemcisi için İstemci-Sunucu Konuşması

Resim tanımını buraya girin

Kaynak: Katalizör Anahtarında veya Kurumsal Ağlarda DHCP'yi Anlama ve Sorun Giderme


Varsayılan rota

Bu belge, varsayılan bir rotanın veya son çare ağ geçidinin nasıl yapılandırılacağını açıklar. Bu IP komutları kullanılır:

  • ip varsayılan ağ geçidi

  • ip varsayılan ağ

  • ve ip yolu 0.0.0.0 0.0.0.0

ip yolu 0.0.0.0 0.0.0.0

Ağa statik yol oluşturma 0.0.0.0 0.0.0.0, yönlendiricideki son çare ağ geçidini ayarlamanın başka bir yoludur. İp default-network komutunda olduğu gibi, 0.0.0.0'a giden statik rotayı kullanmak hiçbir yönlendirme protokolüne bağlı değildir. Ancak, yönlendiricide ip yönlendirmesi etkinleştirilmiş olmalıdır.

Not: IGRP 0.0.0.0'a giden bir rota anlamıyor. Bu nedenle, ip rota 0.0.0.0 0.0.0.0 komutu kullanılarak oluşturulan varsayılan rotaları yayamaz. IGRP'nin varsayılan bir rota yayması için ip default-network komutunu kullanın.

Kaynak: Son Komut Ağ Geçidini IP Komutlarını Kullanarak Yapılandırma


3
Sunucular bağlamında, 0.0.0.0 "yerel makinedeki tüm IPv4 adresleri" anlamına gelir. Bir ana bilgisayarın iki ip adresi varsa, 192.168.1.1 ve 10.1.2.1 ve ana bilgisayarda çalışan bir sunucu 0.0.0.0'da dinlerse, bu IP'lerin her ikisinde de erişilebilir olacaktır. - Bu benim için yaptım
Rafael Eyng

112

Onlar aynı değil.

127.0.0.1 Ayrılmış ve aynı bilgisayara işaret eden 127/8 ağının bir parçasıdır.

0.0.0.0 Bağlama bağlı olarak farklı şeyler ifade eden özel bir IP adresidir.

İnternet Protokolü Sürüm 4'te, 0.0.0.0 adresi geçersiz, bilinmeyen veya uygulanabilir olmayan bir hedef belirlemek için kullanılan yönlendirilemez bir meta adresidir. Aksi takdirde geçersiz bir veri parçasına özel bir anlam vermek, bant içi sinyalleşmenin bir uygulamasıdır.

Netstat'a baktığınızda ve yerel adresin 0.0.0.0 olarak dinlendiğini gördüğünüzde, 127.0.0.1 için 0.0.0.0 hatası yapmış olabilirsiniz, ancak bu, 0.0.0.0'ın kullanılmasının farklı bir yoludur.

Sunucular bağlamında, 0.0.0.0 "yerel makinedeki tüm IPv4 adresleri" anlamına gelir. Bir ana bilgisayarın iki ip adresi varsa, 192.168.1.1 ve 10.1.2.1 ve ana bilgisayarda çalışan bir sunucu 0.0.0.0'da dinlerse, bu IP'lerin her ikisinde de erişilebilir olacaktır.

Yönlendirme bağlamında, 0.0.0.0 genellikle varsayılan yol anlamına gelir; yani, yerel ağda bir yer yerine İnternetin "geri kalanına" yol açan yol.

https://en.wikipedia.org/wiki/0.0.0.0


0.0.0.0bazen ağdaki tüm bilgisayarlara anlam veren bir yayını da gösterebilir.
James Mertz

8
@KronoS Ben yayınları gibi şeylerdir düşünce 255.255.255.255(veya benzeri daha gerçekçi bir şey 192.168.1.255yerel bir ağ için)
Nick T

1
@NickT Ah sen doğru :A special definition exists for the IP broadcast address 255.255.255.255. It is the broadcast address of the zero network or 0.0.0.0, which in Internet Protocol standards stands for this network, i.e. the local network. Transmission to this address is limited by definition, in that it is never forwarded by the routers connecting the local network to other networks.
James Mertz

@KronoS Yayın eklentisini loopback ile karıştırıyorsunuz. Geridöngü, yukarıda açıklandığı gibi tüm yerel adresleri dinleyen 0.0.0.0'dır. Yayın (basit bir şekilde), ağdaki tüm adreslere "yayın" yapan 255 ağdır.
Arzu

Bu eksik - birçok işletim sistemi aslında 0.0.0.0'a bağlanmanıza izin veriyor , bu daha sonra geridöngü adresi gibi davranıyor.
Grawity

16

127.0.0.1, yerel bilgisayarın adreslerinden biridir, ancak 127.xyz adresi de, 127.0.0.0 (geridöngü alt ağı) ve 127.255.255.255 (yayın adresi için yayın adresi) dışında, bilgisayarın başka bir adresidir ("geridöngü adresi"). geridöngü alt ağı).

127.xyz "burada" anlamına gelir.

0.0.0.0 tamamen farklıdır: 0.0.0.0 hiçbir şeyin adresi değildir,* kabuğundaki gibi jokerdir.

0.0.0.0'a veri gönderemez veya 0.0.0.0'a etkin bir TCP bağlantısı açamazsınız çünkü orada hiçbir şey yoktur; 0.0.0.0, ulaşılamaz veya yönlendirilemeyen bir adres bile değildir, bir adresin beklendiği bağlamda anlamsızdır .

Joker 0.0.0.0'ı, bir adresin isteğe bağlı olarak sağlanabileceği bağlamlarda , umursamadığım anlamına gelir .

Örneğin, bazı TCP sunucularına (pasif bir TCP açık tarafından oluşturulan bir TCP sunucusu) bir TCP bağlantısını aktif olarak açtığınızda, TCP sunucusunun adresini belirtmeniz gerekir (IP ve port numarası) ve isteğe bağlı olarak bir yerel adres. (Soketiniz bir sunucu soketi olmadığı için, kimse bir bağlantıyı açamaz ve bağlantının tarafındaki adres genellikle çok önemli değildir.)

bindSistem çağrısı Bir TCP soket yerel adres seçmek için kullanılır. İletilen veri bindgerçekten bir dizi kısıtlamadır: IP adresindeki kısıt, TCP portundaki kısıt. Normal metin gösterimi IP: port'tur. 0.0.0.0:0, herhangi bir IP ve herhangi bir portun kabul edilebilir olduğu anlamına gelir, boş sınırlamadır. 0.0.0.0:20 yerel portun 20 olması gerektiği, herhangi bir IP'nin kabul edilebilir olduğu anlamına gelir (0.0.0.0:20, aktif modda veri bağlantısı için FTP sunucularına uygun olarak kullanılır).

TCP / IP alt sistemi , hedef adresi temel alarak yönlendirme tablosunu kullanarak birini seçmezseniz , TCP bağlantısının tarafınız için adresini seçer: yerel TCP soket adresi, karşılık gelen yolla ilişkilendirilmiş yerel adres olacaktır. Hedef adrese

Daha önce "meta-karakter" kabuğundan bahsettim *, ancak meta-karakterleri *foo*("foo" içeren herhangi bir dosya adı) gibi karakterlerle birleştirmenin gücü IP adres kısıtlamaları ile mevcut değil, hepsi ya da hiçbiri: ya tek bir IP adresi kabul edilebilir sayılır veya tüm adresler Mantık böyle olması gerektiğini söylemiyor . Arabirimi daha zengin bir kısıtlama diliyle genişletebilirsiniz.

Hassas:

127.xyz cümle , "burada" anlamına gelir , tüm bu adreslerin aynı olduğu anlamına gelmez. Aslında, yerel IP yığınının içindeki yerel "bilgisayarın" içindeki farklı "konumları" (soket adresleri) gösterir.

Not: sanallaştırmaya sahip bir bilgisayar (öykünme, donanım sanallaştırma, paravirtualizasyon, ne düşünürseniz düşünün) çok sayıda bağımsız IP yığınına sahiptir.


Tarayıcımda 127 ile başlayan (örneğin 127.16.23.42) rasgele bir adres yazdığımda, localhost'a bağlanamadı.
15’te 21

Elbette @wnowKnows. localhost, 127.0.0.1, 127.16.23.42 değil.
curiousguy

Anlıyorum. Yani 127.0.0.1 localhost anlamına gelir, ancak 127.xyz olabilir bu şekilde kurulmuştur eğer yerel bilgisayarı demek?
15’te

2
@whoKnows No: 127.xyz, herhangi bir xy z için bu bilgisayara aittir. "localhost", 127.0.0.1 için yalnızca bir addır, bu nedenle "localhost" u unutun. Adlarını değil, sayısal adreslerini göstermek için -nveya ile ilgili programları veya -dbayraklarını kullanın netstat. 127.0.0.1, 127.16.23.42 ile aynı IP adresi değil. Dolayısıyla, 127.0.0.1:80 ve 127.16.23.42:80 farklı TCP uç nokta adreslerini temsil eder, bir adreste bir web sunucusu diğer adreste bulunamaz.
curiousguy 23

6

Genellikle, dış ağlardan ve kaynaklardan gelen bağlantılara izin vermek için adres 0.0.0.0 adresini kullanırsınız. MySQL gibi birçok sunucu tipik olarak 127.0.0.1'e bağlanır ve yalnızca geridönüş bağlantılarına izin verir ve yöneticinin dış bağlantıyı etkinleştirmek için onu 0.0.0.0 olarak değiştirmesini gerektirir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.