127.0.0.2 IP adresi ne içindir?


39

Örneği redis sunucusu IP'si olarak "127.0.0.2" kullanan hiredis'te çalıştırıyorum ve düzgün çalışıyor. Aslında, redis sunucusu aynı makinede çalışıyor. "127.0.0.1" in "lo" nin IP adresi olduğunu biliyorum, fakat "127.0.0.2" nasıl? "127.0.0.1" ile aynı mı?

Yanıtlar:


37

Evet:

IPv4 ağ standartları, 127.0.0.0/8 adres bloğunun tamamını geri döngü amaçları için ayırır. Bu, 16.777.214 adreslerinden (127.0.0.1 - 127.255.255.254) birine gönderilen herhangi bir paketin geri döndürüldüğü anlamına gelir. IPv6'nın yalnızca tek bir adresi var: 1.

Çeşitli İnternet Mühendisliği Görev Gücü (IETF) standartları, bu amaç için CIDR notasyonu ve IPv6 adresi :: 1 olan 127.0.0.0/8 IPv4 adres bloğunu saklı tutar. En yaygın kullanılan IPv4 adresi 127.0.0.1'dir. Genellikle bu geridöngü adresleri, ana bilgisayar adları, localhost veya geridöngü ile eşlenir.

veya RFC'nin kendisinden:

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önmelidir. Bu genellikle geridöngüleme için yalnızca 127.0.0.1/32 kullanılarak uygulanır, ancak bu blok içindeki hiçbir adres hiçbir yerde hiçbir yerde görünmemelidir [RFC1700, sayfa 5].

Eğlenmek için ping yaparak deneyin:

$ ping 127.127.127.127
PING 127.127.127.127 (127.127.127.127) 56(84) bytes of data.
64 bytes from 127.127.127.127: icmp_req=1 ttl=64 time=0.110 ms
64 bytes from 127.127.127.127: icmp_req=2 ttl=64 time=0.065 ms
^C
--- 127.127.127.127 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.065/0.087/0.110/0.024 ms

Wikipedia sayfası o zamandan beri değişti ve şimdi "127.0.0.1 - 127.255.255.254 aralığındaki herhangi bir adres eşlense de" diyor ve bu cevabın özeti Wikipedia ile doğrudan çatışıyor.
SilverSkin

6
@ SilverSkin Ne demek istediğini açıklar mısın? Cevapları ve Wikipedia'da olanları arasındaki tek fark, ağ / yayın adresleri olan 127.0.0.0 ve 127.255.255.255’i (doğru) dışlamaları. Temel hala aynıdır - 127.xxx == 127.0.0.1 (herhangi bir / 8 ağda beklenen 127.0.0.0 ve 127.255.255.255 hariç).
icyrock.com 20:12

1
Yani 127.0.0.124'e bağlanma ile 127.0.0.1'e bağlanma arasında bir fark yoktur? Öyleyse, niçin işe alınanlar, aynı adresse, 127.0.0.2 ile rahatsız ediyorlar? Ayrıca 127.0.0.0'a bir mesaj gönderirseniz ne olur?
CMCDragonkai

7
OS 127'de aynı olmadığını, sadece 127.0.0.1'in geridönüşe geçtiğini belirtmem gerekiyor. Buraya bakınız .
Wenbing Li

6
@ CMCDragonkai 127.0.0.1 ve 127.0.0.124 aynı arabirimde olabilir, ancak aynı adres değildir. Tek 127.0.0.1 üzerinde aynı port dinleme olabilecek diğer hizmetlere engel ortak bağlantı noktasında bir hizmeti dizilişi ve istiyorsa Bir 127.0.0.2 gibi nadir ip kullanabilir
Keith Reynolds

6
  • “Tüm 127.x.x.xadresler yerel makineyle sınırlı mı?” Evet
  • “Tüm 127.x.x.xadresler loarayüze bağlı mı ” Evet
  • 127.x.x.xAdresler ağ üzerinden yönlendiriliyor mu?” Hayır

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
genellikle 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. - RFC5735

  • 127.0.0.2Aynı mı 127.0.0.1?” NO

İken 127.0.0.1etmek 127.255.255.254arayüzü bağlı tüm yerel adreslerdir lo. Onlar aynı değil. Her bir adresi, aynı bağlantı noktasına farklı bir hizmeti bağlamak için kullanabilirsiniz. 80 numaralı bağlantı noktasında 16 milyon web sunucusu, yalnızca yerel makineden erişilebilir (Önce bellek veya başka bir kaynak kullanmazsanız)

Bağlanmak için bir liman işçisi kurdum 127.0.0.2:80. Daha sonra bir takma ad ekledim /etc/hosts. Şimdi aracılığı bağlanabilir http://myserver, ancak aracılığıyla http://127.0.0.1veya http://localhost. Ancak, yalnızca bu makine için kullanılabilir. Sadece loarayüzde olduğu gibi.

Daha sonra bağlanmak için başka bir liman işçisi servisi 127.0.0.3:80ve bir localhost:80başka piton servisi kurdum 127.0.0.4:80.


Bu, tüm işletim sistemlerinde çalışmayabilir. Debian (9) Gnu / Linux, Linux çekirdeği 4.9.0-3-amd64 kullanıyorum. Bazı işletim tüm adresleri ele alabilir 127.0.0.1127.255.255.254aynı. Bazıları sadece çalışabilir 127.0.0.1.

Ayrıca bakınız



Bana bir saat süren araştırmaya değdi ama sonunda neyi aktarmaya çalıştığınızı anladım. Kabul edilen cevabın Wikipedia makalesinden alıntı yaptım. Alıntı yapılan ifade yıllar içinde değiştiğinden, bu orijinal bilgiyi cevabı içeren geri yüklemek için farklı bir ifade verdim.
Ramhound

1

Kapsamlı bir genel cevap değil (zaten bir tane var). Benim bu cevabı127.0.0.2 sorunu çözmek için kullanılan bir örnek gösterir .

Ayıkla:

OP, bir sunucuya bağlantısı reddedildiğinde bir durumda bazı yazılımı test etmeye çalıştı. Bu, iptablesistemci IP'sindeki tüm trafiği reddeden geçici bir kuralla sunucuda yapıldı . Müşteri hemen bağlantıyı reddetti "görmek" başardı.

Sorun, bu kişi sunucu yazılımını istemci ile aynı makineye taşıdığında ve geridöngü arabirimini kullanmaya çalıştığında ortaya çıktı. Kural, iletişimi engellemek için ayarlandı, 127.0.0.1ancak bir bağlantının reddedildiği bilgiler aynı kuraldan geçti ve hiçbir zaman askıda olan istemci yazılımına erişmedi (muhtemelen zaman aşımına kadar).

Solüsyon kullanmaktı 127.0.0.2sunucu adresi olarak ve reddeder bağlantıları olduğu bir kural kümesi için ona. Bir reddedilmeyle ilgili bilgi gitti 127.0.0.1ve müşteri yazılımına geçebildi.

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.