Dlaczego moja nazwa hosta pojawia się z adresem 127.0.1.1 zamiast 127.0.0.1 w / etc / hosts?


204

To może być trochę noobish pytanie, ale przyjrzałem się / etc / hosts na mojej nowej instalacji Xubuntu i zobaczyłem to:

127.0.0.1 localhost
127.0.1.1 myhostname

W większości nixów, których użyłem, drugi wiersz jest pomijany, a jeśli chcę dodać moją nazwę hosta do pliku hosts, po prostu zrobiłbym to:

127.0.0.1 localhost myhostname

Czy istnieje jakaś różnica między tymi dwoma plikami w jakimś sensie praktycznym?


Zastanawiam się, czy mogę po prostu usunąć drugą linię lub czy jakiś proces w debian / ubuntu zregeneruje linię i doda ją z powrotem?
— simgineer

Odpowiedzi:


159

Nie ma między nimi dużej różnicy; 127/8(np .: 127.0.0.0=> 127.255.255.255) są powiązane z interfejsem sprzężenia zwrotnego.

Powód, dla którego jest to udokumentowane w podręczniku Debiana w rozdz. 5 Konfiguracja sieci - 5.1.1. Rozpoznawanie nazw hostów .

Ostatecznie jest to obejście błędu; oryginalny raport to 316099 .


5
Rzeczywisty powód: „Powiązanie systemowej nazwy hosta z tą ostatnią miało niepożądany efekt, czyniąc„ localhost.localdomain ”kanoniczną nazwą hosta skojarzoną z systemową nazwą hosta. To znaczy,„ nazwa hosta - fqdn ”zwróciła„ localhost.localdomain ”.”
— cmroanirgo

Właściwie prześledziłem go z powrotem do tego dokumentu list.debian.org/debian-boot/2005/06/msg00938.html i wygląda na to, że to dlatego, że Thomas czuł potrzebę użycia 1.1 zamiast 0.1, które są równoważne, popraw mnie jeśli się mylę, ale to oznacza, że ​​ta odpowiedź jest naprawdę tylko bułką tartą?
— Brian Thomas

@BrianThomas ta wiadomość sugeruje, dlaczego nie są równoważne. Chcieli localhosti myhostnamebyli odrębni - w przeciwnym razie jeden byłby pseudonimem drugiego. Uwaga: to nie działa w IPv6, gdzie jest tylko jeden adres sprzężenia zwrotnego. Można tego uniknąć za pomocą modułu NSS, jak wspomniano w wątku, ponieważ może on być bardziej elastyczny niż / etc / hosts i zwracać różne nazwy kanoniczne, mimo że mają ten sam adres IP. Wiem to, ponieważ mój system jest skonfigurowany przy użyciu takiego modułu NSS .
— sourcejedi

46

Podsumowując powiązane informacje:

  • Przydaje się (wątpliwie) wpis w /etc/hoststłumaczeniu w pełni kwalifikowanej nazwy domeny urządzenia na stały adres IP.
  • debian-installer, a ściślej jego netcfgkomponent, obecnie (przynajmniej do marca 2013 r.) tworzy ten wpis.
  • Jeśli komputer nie ma stałego adresu IP, instalator debian nadal chce, aby miał taki wpis.
  • Adres 127.0.1.1korzysta z interfejsu sprzężenia zwrotnego , na który odpowiada Twoja własna maszyna, podobnie jak, 127.0.0.1ale jest odrębnym wpisem, w /etc/hostsktórym można rozpatrywać osobno, 127.0.0.1jeśli jest to konieczne.

Thomas Hood wyjaśnia dodanie tego wpisu w następujący sposób:

[To] zapewni, że jeśli nazwa hosta UNIX zostanie rozwiązana, to zawsze będzie ona własną kanoniczną nazwą hosta

ale:

Na dłuższą metę nazwa hosta UNIX w ogóle nie powinna być umieszczana w / etc / hosts.


.. a więc... ? muszę używać 127.0.0.1 dla mojego fdqn? lub 127.0.1.1? czy statyczny lan ip?
— realtebo

1
@realtebo: 1. Jest użyteczny, dlatego został dodany przez instalatora. 2. Nie ma tutaj „musi”; i ma to znaczenie tylko wtedy, gdy Twoja nazwa FQDN nie ma stałego adresu.
— einpoklum

9

Byłem ciekawy i nie podobała mi się żadna inna odpowiedź, ponieważ nie odpowiadały na to, czego szukałem.

Odpowiedź: Patrząc wstecz na ten dokument , wygląda to prawie tak, jakby Thomas twierdził, że daje mu kolejny dedykowany adres IP w pętli zwrotnej, co pozwala mu być kanonicznym.

Oba wskazują na twoją pętlę zwrotną. Korzystanie z następującego adresu 127.0.1.1 to rzeczywisty adres IP w pętli zwrotnej, podczas gdy 127.0.0.1 to albo samo urządzenie, albo inny adres IP w pętli zwrotnej. Oba kończą w tej samej podsieci, reprezentując pętlę zwrotną, ale są oddzielone przez ip. Są one równoważne pod względem dns, ale oddzielone z powodu posiadania dedykowanego adresu IP.

Chodzi o to, że możesz mieć wszystkie wpisy w jednym wierszu w ten sposób

127.0.0.1 localhost localhost.domain www.myfakednsname.com myakednsname.com 

Jeśli twoja nazwa hosta jest lokalna, co oznacza, że ​​globalny internetowy wpis DNS nie jest zmapowany na rzeczywisty internetowy ip, to w tym przypadku Thomas powiedział, że POTRZEBUJESZ mieć drugi wiersz wpisu, jak to, aby tam go dedykować (kanoniczny).

127.0.0.1 localhost localhost.localdomain
127.0.1.1 myfakednsname

szczerze mówiąc, po tym, jak w końcu skomponowałem to w sposób, który miał dla mnie sens, widzę, że tak właśnie einpoklum próbował wyjaśnić, jak to wygląda z perspektywy czasu.
— Brian Thomas

OK negatywne głosowanie, nie wiem dlaczego. Nadal uważam, że TO NAJLEPSZA odpowiedź, inaczej nie powiedziałbym jej po wylądowaniu tutaj. oryginalna odpowiedź pomogła, ale nie uchwyciła wszystkich szczegółów. Poszedłbym z tym.
— Brian Thomas,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.