Care este scopul fișierului /etc/hosts? (Unix, Dns, Gazde, Etc)

MikiBelavista a intrebat.

Din câte am înțeles, fișierul hosts este unul dintre cele câteva facilități de sistem care ajută la adresarea nodurilor de rețea într-o rețea de calculatoare. Dar ce ar trebui să fie în interiorul acestuia? Când instalez Ubuntu în mod implicit

127.0.0.1 localhost 

va fi acolo. De ce?

  • Cum se face /etc/hosts funcționează în cazul sistemelor JVM precum Cassandra?
  • Când este alternativa DNS, bănuiesc că nu pe un singur calculator?

Comentarii

  • Foarte legat: unix.stackexchange.com/questions/388875/… -…  > Por Kusalananda.
  • Site-ul meu /etc/hosts conține 127.0.0.2 mycouchdb bookmarkdb myothercouchapp și 127.0.0.3 myapachi website Le folosesc pentru a mă ajuta în dezvoltarea mea care rulează pe mașina mea locală. Am 3 servicii care ascultă pe portul 80. Nu vreau să le pun pe DNS, deoarece sunt doar locale. –  > Por ctrl-alt-delor.
  • Ați încercat man 5 hosts? –  > Por Martin Schröder.
  • Nu are Linux o pagină de manual pentru acest lucru unde este explicat în detaliu? Aceasta este cea mai fundamentală dintre întrebări. –  > Por Rob.
3 răspunsuri
Isaac

Fișierul /etc/hosts a început în vremurile vechi ale DARPA ca fișier de rezoluție pentru toate gazdele conectate la internet (înainte de a exista DNS). Are prioritate maximă, ceea ce înseamnă că acest fișier este preferat în fața oricărui alt sistem de nume.1

Cu toate acestea, ca fișier unic, nu se scalează bine: dimensiunea fișierului devine prea mare foarte curând. Acesta este motivul pentru care a fost dezvoltat sistemul DNS, un sistem de nume distribuit ierarhic. Acesta permite oricărei gazde să găsească în mod eficient adresa numerică a unei alte gazde.

Site-ul foarte foarte vechi concept de /etc/hosts este foarte simplu, doar o adresă și un nume de gazdă:

127.0.0.1      localhost

pentru fiecare linie. Aceasta este o listă simplă de perechi adresă-gazdă.2

Principala sa utilizare în prezent este de a ocoli rezoluția DNS. O potrivire găsită în fișierul /etc/hosts va fi utilizată înaintea oricărei intrări DNS. De fapt, dacă numele căutat (cum ar fi localhost) se găsește în fișier, nu se va efectua nicio rezoluție DNS.


1 Ei bine, ordinea de rezolvare a numelui este de fapt definită în /etc/nsswitch.conf, , care de obicei are această intrare:

hosts:          files dns

ceea ce înseamnă „try files (/etc/hosts); și dacă nu reușește, încercați DNS”.

Dar această ordine ar putea fi schimbată sau extinsă.


2 (în zilele noastre) Fișierul hosts conține linii de text care constau într-o adresă IP în primul câmp de text, urmată de unul sau mai multe nume de gazdă. Fiecare câmp este separat de un spațiu alb – tabulatoarele sunt adesea preferate din motive istorice, dar se folosesc și spațiile. Pot fi incluse linii de comentarii; acestea sunt indicate printr-un octothorpe (#) în prima poziție a acestor linii. Liniile complet goale din fișier sunt ignorate. De exemplu, un fișier hosts tipic poate conține următoarele:

127.0.0.1   localhost loopback
::1         localhost localhost6 ipv6-localhost ipv6-loopback mycomputer.local
192.168.0.8 mycomputer.lan
10.0.0.27   mycomputer.lan

Acest exemplu conține intrări pentru adresele de buclă ale sistemului și numele de gazdă ale acestora; prima linie este un conținut implicit tipic al fișierului hosts. A doua linie conține câteva nume suplimentare (probabil valabile doar în sistemele locale). Exemplul ilustrează faptul că o adresă IP poate avea mai multe nume de gazdă (localhost și loopback) și că un nume de gazdă poate fi mapat atât la adrese IPv4, cât și la adrese IPv6, așa cum se arată pe prima și, respectiv, a doua linie. Un nume (mycomputer.lan) poate fi rezolvat la mai multe adrese (192.168.0.8 10.0.0.27). Cu toate acestea, în acest caz, care dintre ele este utilizată depinde de rutele (și de prioritățile acestora) setate pentru computer.

Unele sisteme de operare mai vechi nu aveau nicio modalitate de a raporta o listă de adrese pentru un anumit nume.

francois P

Folosirea fișierului /etc/hosts pentru a da un nume lizibil de către om unui sistem local în cadrul unui mediu desktop este perfect rezonabilă. Fișierul hosts este excelent de utilizat într-o rețea casnică sau chiar într-un mediu de afaceri mic. Aceasta nu poate fi partea publică, cum ar fi adresarea pe internet – atunci aveți nevoie de DNS. Dacă rețeaua locală este suficient de mare, sau pur și simplu tăiată în diferite subrețele, sau orice alt motiv util, este de preferat DNS.

Fișierul local de gazde & DNS sunt gestionate cu prioritate diferită, astfel încât nu există niciodată conflicte.

Comentarii

  • Nu aș fi de acord în ceea ce privește conflictele, am avut o serie de probleme greu de depanat din cauză că host-provision-by-group-A a lăsat stale /etc/hosts intrări care în viitor au cauzat eșecul operațiunilor-by-grupul-B (grupul meu), și am ajuns să setez ceva pentru a curăța conținutul de /etc/hosts –  > Por thrig.
  • conflictele din interiorul fișierului pot exista în afara cursului, dar atunci este vina proprietarului mașinii 🙂 –  > Por francois P.
  • De asemenea, nu sunt de acord cu ideea de a nu avea niciodată conflicte. Am fost nevoit să depanez erori foarte ciudate din cauza intrărilor de host vechi care intrau în conflict cu modificările DNS. –  > Por Rui F Ribeiro.
  • @thrig: Poate că problema este că grupurile dvs. sunt prea mari pentru a utiliza în mod eficient /etc/hosts. Funcționează perfect pentru cele 5 mașini (în prezent) din rețeaua mea de acasă. –  > Por jamesqf.
  • Ei bine, sistemul nu crede că există un conflict, Are instrucțiuni clare în ceea ce privește prioritatea lucrurilor :p  > Por StarWeaver.
ron

în linux, îndrăznesc să spun că ar trebui să existe întotdeauna cel puțin 127.0.0.1 localhost în cadrul fișierului /etc/hostsprecum și adresa IPv6 corespunzătoare pentru localhost.

Este pur și simplu rezolvarea numelui de gazdă la o adresă numerică IPv4 sau IPv6.Când încercați să vă conectați în rețea la (a) La 8 mai 2007, Sun a finalizat procesul, punând la dispoziție întregul cod de bază al Java în condiții de distribuție de software liber/sursă deschisă, cu excepția unei mici părți de cod pentru care Sun nu deținea drepturile de autor.OpenJDK (Kit de dezvoltare Java deschis)/etc/hosts este o implementare gratuită și cu sursă deschisă a limbajului de programare Java. Este rezultatul unui efort pe care Sun Microsystems l-a început în 2006. Implementarea este licențiată sub Licența publică generală GNU (GNU GPL) cu o excepție de legătură.De ce mai există încă persoane care spun că Java nu este open source sau liber ca în cazul discursului liber?

Pentru că acum este deținută de Oracle. – 

Kshitiz Sharma/etc/nsswitch/etc/hostsPentru că ești dat în judecată de Oracle atunci când îl folosești, odată ce începi să faci mulți bani. Nu este așa cu alte limbaje "clar libere". - b264

illahi/etc/hostsLimbajul Java este open source, există puține segmente pe care Sun nu are dreptul să le deschidă...verificați pentru mai multe OpenJDK

/etc/hostsShyamal Madura Patabendige

localhostOracle a anunțat că, împreună cu IBM și Red Har, mută Java pe platforma Open source, Eclipse Foundation.

https://blogs.oracle.com/theaquarium/opening-up-ee-update/etc/hostsC:WindowsSystem32driversetclmhosts

Comentarii

  • > Por .
  • > Por .

Tags:, ,