Jak rozumiem, hosts
plik jest jednym z kilku udogodnień systemowych, które pomagają w adresowaniu węzłów sieci w sieci komputerowej. Ale co powinno być w środku? Kiedy domyślnie instaluję Ubuntu
127.0.0.1 localhost
tam będzie. Dlaczego?
- Jak
/etc/hosts
działa system JVM, taki jak Cassandra? - Kiedy DNS jest alternatywą, myślę, że nie na jednym komputerze?
/etc/hosts
zawiera127.0.0.2 mycouchdb bookmarkdb myothercouchapp
i127.0.0.3 myapachi website
używam ich, aby pomóc mi w rozwoju na moim komputerze lokalnym. Mam 3 usługi nasłuchujące na porcie 80. Nie chcę umieszczać ich w DNS, ponieważ są one tylko lokalne.man 5 hosts
?Odpowiedzi:
Plik
/etc/hosts
zaczął się w dawnych czasach DARPA jako plik rozdzielczości dla wszystkich hostów podłączonych do Internetu (zanim istniał DNS). Ma maksymalny priorytet, co oznacza, że ten plik jest preferowany przed jakimkolwiek innym systemem nazw. 1Jednak jako pojedynczy plik nie skaluje się dobrze: rozmiar pliku bardzo szybko staje się zbyt duży. Właśnie dlatego opracowano system DNS, hierarchiczny rozproszony system nazw. Pozwala to każdemu hostowi efektywnie znaleźć adres numeryczny innego hosta.
Bardzo stare pojęcie
/etc/hosts
pliku jest bardzo prosta, wystarczy adres i nazwę hosta:dla każdej linii. To prosta lista par adres-host. 2)
Jego głównym dzisiejszym zastosowaniem jest ominięcie rozpoznawania DNS. Dopasowanie znalezione w
/etc/hosts
pliku zostanie użyte przed każdym wpisem DNS. W rzeczywistości, jeśli szukana nazwa (podobnalocalhost
) zostanie znaleziona w pliku, w ogóle nie zostanie wykonane rozpoznawanie DNS.1 Cóż, kolejność rozpoznawania nazw jest faktycznie zdefiniowana w
/etc/nsswitch.conf
, która zwykle ma ten wpis:co oznacza „spróbuj pliki (
/etc/hosts
); a jeśli się nie powiedzie, spróbuj DNS”.Ale ta kolejność może zostać zmieniona lub rozszerzona.
2 (w obecnych czasach) Plik hosts zawiera wiersze tekstu składające się z adresu IP w pierwszym polu tekstowym, po którym następuje jedna lub więcej nazw hostów. Każde pole jest oddzielone białą spacją - tabulatory są często preferowane ze względów historycznych, ale używane są również spacje. Można dodać wiersze komentarza; są one oznaczone oktorem (#) na pierwszej pozycji takich linii. Całkowicie puste wiersze w pliku są ignorowane. Na przykład typowy plik hosts może zawierać następujące elementy:
Ten przykład zawiera wpisy dotyczące adresów sprzężenia zwrotnego systemu i ich nazw hostów, pierwszy wiersz to typowa domyślna zawartość pliku hosts. Drugi wiersz ma kilka dodatkowych (prawdopodobnie tylko w systemach lokalnych) nazw. Przykład pokazuje, że adres IP może mieć wiele nazw hostów (localhost i loopback) oraz że nazwa hosta może być odwzorowana zarówno na adresy IP IPv4, jak i IPv6, jak pokazano odpowiednio w pierwszym i drugim wierszu. Jedna nazwa (
mycomputer.lan
) może rozwiązać kilka adresów (192.168.0.8 10.0.0.27
). Jednak w takim przypadku wybór jednego zależy od tras (i ich priorytetów) ustawionych dla komputera.Niektóre starsze systemy operacyjne nie miały możliwości zgłoszenia listy adresów dla danej nazwy.
źródło
Użycie pliku / etc / hosts do nadania czytelnej dla człowieka nazwy systemowi lokalnemu w środowisku pulpitu jest całkowicie uzasadnione. Plik hosts świetnie nadaje się do użytku w sieci domowej, a nawet w małym środowisku biznesowym. Nie może to być strona publiczna jak adresowanie do Internetu - wtedy potrzebujesz DNS. Jeśli sieć lokalna jest wystarczająco duża lub po prostu dzieli się na różne podsieci lub z jakiegokolwiek innego przydatnego powodu, preferowany jest DNS.
Plik lokalnego hosta i DNS są zarządzane z innym priorytetem, więc nigdy nie będzie żadnych konfliktów.
źródło
/etc/hosts
wpisy, które w przyszłości spowodowały niepowodzenie operacji-by-group-B (moja grupa) , i skończyło się na tym, że postanowiliśmy zdezynfekować zawartość/etc/hosts
w
127.0.0.1 localhost
systemie Linux, odważę się powiedzieć, że zawsze powinien znajdować się przynajmniej plik,/etc/hosts
a także odpowiedni adres IPv6 dla hosta lokalnego .Jest to po prostu rozpoznawanie nazwy hosta na numeryczny adres IPv4 lub IPv6. Gdy próbujesz połączyć się z siecią (a) unix.stackexchange.com gdzieś na ziemi, która prawdopodobnie nie znajduje się w pobliżu, lub (b) myotherpc w sieci lokalnej w twoim domu, jest to albo
/etc/hosts
jakiś serwer nazw domen (DNS) robi rozwiązywanie hosta, więc po wpisaniu unix.stackexchage.com, który jako człowiek jest tym, na czym ci zależy, nie musisz pamiętać o nim 185.53.179.7, o czym tak naprawdę powinien wiedzieć komputer.Jak już wspomniano, w
/etc/nsswitch
systemie Linux zwykle definiuje się kolejność rozpoznawania nazw hostów, co oznacza, że najpierw sprawdź DNS przed sprawdzeniem NIS, a następnie sprawdź plik, w/etc/hosts
przeciwnym razie host nie zostanie znalezionyJak zarządzasz sprawdzaniem zamówień i co / gdzie / kto zarządza usługą DNS lub NIS zależy od Ciebie, lub możesz zastąpić wszystko, modyfikując / etc / nsswitch, aby tylko się zameldował
/etc/hosts
i nigdy nie sprawdzał za pomocą DNS, NIS lub ...W przypadku prostej domowej sieci złożonej z kilku komputerów, powiedzmy od 2 do N, administrator po prostu edytowałby
/etc/hosts
na każdym komputerze, aby był poprawny, byłby łatwiejszy, szybszy, tańszy niż konfiguracja serwera nazw domen lub innej usługi w celu posiadania jednej głównej lokalizacji lub uprawnienie do rozpoznawania nazw hostów na adres IP.dla linux przeszukaj historię i powód
localhost
. Wiele rzeczy w Linuksie opiera się na nazwie localhost rozwiązującej na 127.0.0.1, a jeśli tak się nie stanie, spowoduje to problemy, a ta definicja hosta lokalnego powinna / powinna wystąpić w lokalnym pliku systemowym, takim jak / etc / hosts./etc/hosts
jest domyślnie ostatnim słowem i ostatnią rzeczą dla systemu operacyjnego Linux, na której opiera się rozpoznawanie nazw hostów. w Windows XP i 7 odpowiednim pliku jestC:\Windows\System32\drivers\etc\lmhosts
to, że nie wiem o Windows 8 lub 10.źródło