IP adresi 0.0.0.0 ve 127.0.0.1 arasındaki fark nedir?


220

127.0.0.1 ~ 127.255.255.254'ün çoğu modern işletim sistemi için geridöngü IP adresi olduğunu ve bu IP adreslerinin kendi bilgisayarımıza başvurmak için kullanılabileceğini biliyorum.

Ama 0.0.0.0 nedir? Görünüşe göre yerel bilgisayara da atıfta bulunuyor, peki fark nedir?

Ve aşağıdaki IP bağlantılarını benim için açıklayabilir misiniz:

netstat -an çıktısının ekran görüntüsü


6
Ayrıca, 0.0.0.0'ın ne olduğu ile ilgili detaylar verdiği için bu soruya bir göz atın: serverfault.com/questions/228629/…
Ellie Kesselman

Modern bir işletim sistemi ::1geridöngü adresi olarak kullanıyor olacaktı .
kasperd

Yanıtlar:


157

Tek şey, "tüm adreslerin erişime sahip olması gerektiğini" söylemiyor olmanızdır - güvenlik duvarlarınızda ve / veya sunucu yazılımında ve / veya tcpwrappers gibi diğer güvenlik katmanlarında yapılır.

0.0.0.0, bu bağlamda, "yerel makinedeki tüm IP adresleri" anlamına gelir (aslında, "yerel makinedeki tüm IPv4 adresleri"). Dolayısıyla, web sunucusu makinenizde iki IP adresi varsa, 192.168.1.1 ve 10.1.2.1 ve apache benzeri bir web sunucusu arka plan programının 0.0.0.0'da dinlemesine izin veriyorsanız, bu IP adreslerinin her ikisinde de erişilebilir olacaktır. Ancak, yalnızca bu IP adresleriyle ve web bağlantı noktalarıyla iletişim kurabilenlere.

Farklı bir bağlamda (yönlendirme) 0.0.0.0'ın genellikle varsayılan yol anlamına geldiğini (yerel ağınızdaki yolların yanı sıra İnternetin "geri kalanına giden yol" vb.) Dikkat edin.


Yani, web sunucusu soketinin 0.0.0.0'da dinlediğinde mevcut herhangi bir adrese bağlı olduğunu mu söylüyorsunuz?
onmyway133

0.0.0.0varsayılan rotayı yalnızca önek /0(veya ağ maskesi 0.0.0.0) ile eşlik ettiği takdirde gösterir
minmaxavg 11:15

Dikkat edilmesi gerekenler: eğer bazı işlemler 0.0.0.0'da dinliyorsa, makinenin ağ arabirimlerinin IP adreslerinden mevcut durumda geri döngü arabiriminin halihazırda yapılandırılmış adresini içeren erişilebilir olacaktır. Fakat süreç sadece bir geri döngü adresi port <portNumber>, örneğin 127.0.0.1 dinler ve sonra işlemi sadece erişilebilir olup olmadığını aynı makineden tarafından tam olarak 127.0.0.1 hedefleme: <portNumber> . Oynamak için bu python aracını deneyin !
Gab 是

77

Bir servis 0.0.0.0'da dinlerken, servis yapılandırılmış tüm ağ arayüzlerini dinliyor demektir, 127.0.0.1'de dinlerken servis sadece geri döngü arabirimine bağlanır (yalnızca yerel makinede bulunur).


38

IP adresinin 0.0.0.0, kullanıldığı yere bağlı olarak çok farklı anlamları olabilir.

  • Gerçek bir ağ arabirimine, 0.0.0.0/8 alt ağındaki herhangi bir adresle (yani, başlayan herhangi bir adres 0.) verilecek geçerli bir adres değil .
  • Bir bilgisayar hala kendi IP adresini bilmediği ve bir tane (klasik örnek: DHCP) almaya çalıştığında gerçekleşmezse, herhangi bir IP paketindeki kaynak adres olarak kullanılamaz.
  • Bir yönlendirme tablosunda kullanılıyorsa, varsayılan ağ geçidini tanımlar; 0.0.0.0'a giden bir rota varsayılan yoldur, yani bir hedef adres için daha özel bir rota bulunmadığında kullanılır.
  • Son olarak, netstatkomutun çıktısında göründüğünde (istediğin buydu), verilen bir soketin bilgisayarın sahip olduğu mevcut tüm IP adreslerini dinlediği anlamına gelir; Bir bilgisayarın birden fazla IP adresi varsa, bir soket yalnızca belirli bir adrese ve port çiftine veya bir port ve tüm adreslere bağlanabilir ; orada bir IP adresi görürseniz, soketin yalnızca o bağlantı noktasını ve o belirli adresi dinlediği anlamına gelir; görürseniz 0.0.0.0, geri döngü de dahil olmak üzere makinenin tüm adreslerinde bu bağlantı noktasını dinliyor demektir ( 127.0.0.1).

3
0.0.0.0 kıvrılırsanız ne anlama geliyor? Curl aslında mevcut arayüzler üzerinden bir istekle iletişim kuruyor mu? Hangi arayüzün doğru olduğunu nasıl biliyor? Bir sunucunun tüm arayüzleri nasıl dinleyebileceğini anlıyorum, ancak bir müşterinin 0.0.0.0 veya curl [::] kıvrımları yaptığım gibi tüm arayüzleri isteme mekanizması nedir.
CMCDragonkai

1
İşletim sistemi sizi yalnızca ağ perspektifinden mantıklı gelmediğinden, bunu yapmanıza engel olacak. ping 0.0.0.0Windows sisteminde denemek bir hata mesajı ile sonuçlanır.
Massimo

curl 0.0.0.0verimleri connection refusedArch Linux üzerinde. ping 0.0.0.0Öte yandan, ping 127.0.0.1iyi çalışan bir takma ad gibi görünüyor .
Matthias Braun

@MatthiasBraun connection refusedolabilir çünkü curl varsayılan olarak 80 / tcp portuna bağlanmayı deneyin. Açık portlarınızı bulup nmap -sV localhostsonra da örneğin 631 / tcp: ile bulmaya çalışın curl 0.0.0.0:631.
Pablo A

27

Lee B'nin cevabı doğru, ancak ilgilendiğiniz takdirde bazı ilgili RFC'ler.

0.0.0.0:

Gönderen RFC1122 Bölüm 3.1.2.3:

Şimdi bir IP adresi için aşağıdaki gösterimi kullanarak A, B ve C IP adresleri için önemli olan özel durumları özetledik:

            { <Network-number>, <Host-number> }

        or
            { <Network-number>, <Subnet-number>, <Host-number> }

...

          (a)  { 0, 0 }

             This host on this network.  MUST NOT be sent, except as
             a source address as part of an initialization procedure
             by which the host learns its own IP address.

Aynen, "Bu ağdaki bu ev sahibi" ... Lee B'nin cevabında, bunun, ev sahibinizdeki mevcut tüm IP adreslerine çevrildiği belirtiliyor. Bir hizmeti 0.0.0.0'da barındırmak, bu servisi adreslenebilir her arayüzde otomatik olarak barındırır.

127.0.0.1:

Gönderen RFC5735 :

127.0.0.0/8 - Bu blok İnternet ana bilgisayarı geridöngü adresi olarak kullanılmak üzere atanmıştır. Daha yüksek seviyeli bir protokol tarafından bu blok içindeki herhangi bir adrese gönderilen bir datagram, ana bilgisayar içine geri döner. Bu normalde geri döngü için yalnızca 127.0.0.1/32 kullanılarak uygulanır. [RFC1122], Bölüm 3.2.1.3'te açıklandığı gibi, 127.0.0.0/8 bloğundaki adresler yasal olarak herhangi bir ağda görünmez.

0.0.0.0 ve geridöngü adresi 127.0.0.1 arasındaki fark geridöngü adresinin, varsa ağ kurulumunun geri kalan kısmının görünümüne bakılmaksızın, ana bilgisayar içinde tamamen çalışan bir IP arabirimine izin verecek şekilde tasarlanmış olmasıdır. Geridöngü cihaza gönderilen herhangi bir trafik derhal alınır. Geridönüşüm ağının kendi ana sisteminize "atıfta bulunması" çok fazla bir şey değil, ana makinenizde cihazların, işlemlerin ve soketlerin açılabileceği ve bağlanabileceği bir mini ağ segmentiniz olması gibi.


4

Basit bir ifadeyle: 0.0.0.0'da dinlemek, bu bilgisayara ağ erişimi olan herhangi bir yerden, örneğin, bu bilgisayardan, yerel ağdan veya İnternet'ten dinlemek anlamına gelir, 127.0.0.1'de yalnızca bu bilgisayardan dinlemek anlamına gelir.

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.