ไฟล์/etc/hosts
เริ่มต้นในวันเก่า ๆ ของ DARPA เป็นไฟล์การแก้ปัญหาสำหรับโฮสต์ทั้งหมดที่เชื่อมต่อกับอินเทอร์เน็ต (ก่อนที่ DNS จะมีอยู่) มันมีความสำคัญสูงสุดหมายถึงไฟล์นี้เป็นที่ต้องการก่อนระบบชื่ออื่น ๆ 1
อย่างไรก็ตามในฐานะไฟล์เดียวมันไม่ได้ขยายขนาดไฟล์: ขนาดของไฟล์ใหญ่เกินไปเร็ว ๆ นี้ นั่นคือสาเหตุที่ระบบ DNS ได้รับการพัฒนาซึ่งเป็นระบบชื่อแบบกระจายตามลำดับชั้น อนุญาตให้โฮสต์ใด ๆ ค้นหาที่อยู่ตัวเลขของโฮสต์อื่นได้อย่างมีประสิทธิภาพ
มากแนวคิดเดิมของ/etc/hosts
ไฟล์ง่ายมากเพียงแค่ที่อยู่และชื่อโฮสต์:
127.0.0.1 localhost
สำหรับแต่ละบรรทัด นั่นคือรายการคู่ของ address-host อย่างง่าย ๆ 2
การใช้งานในปัจจุบันคือการเลี่ยงผ่านการแก้ไข DNS การจับคู่ที่พบใน/etc/hosts
ไฟล์จะถูกใช้ก่อนรายการ DNS ใด ๆ ในความเป็นจริงหากพบชื่อที่ค้นหา (เช่นlocalhost
) ในไฟล์จะไม่มีการแก้ไข DNS เลย
1มีการกำหนดลำดับของการจำแนกชื่อจริง/etc/nsswitch.conf
ซึ่งโดยปกติจะมีรายการนี้:
hosts: files dns
ซึ่งหมายถึง "ลองไฟล์ ( /etc/hosts
); และหากล้มเหลวให้ลอง DNS"
แต่คำสั่งนั้นสามารถเปลี่ยนแปลงหรือขยายได้
2 (ในปัจจุบัน) ไฟล์โฮสต์ประกอบด้วยบรรทัดข้อความที่ประกอบด้วยที่อยู่ IP ในฟิลด์ข้อความแรกตามด้วยชื่อโฮสต์หนึ่งชื่อหรือมากกว่า แต่ละฟิลด์ถูกคั่นด้วย white space - แท็บมักนิยมใช้ด้วยเหตุผลทางประวัติศาสตร์ แต่จะใช้ช่องว่างด้วย อาจรวมบรรทัดความคิดเห็น มันถูกระบุโดย octothorpe (#) ในตำแหน่งแรกของบรรทัดดังกล่าว บรรทัดว่างทั้งหมดในไฟล์จะถูกละเว้น ตัวอย่างเช่นไฟล์โฮสต์ทั่วไปอาจมีสิ่งต่อไปนี้:
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
ตัวอย่างนี้มีรายการสำหรับที่อยู่ลูปแบ็คของระบบและชื่อโฮสต์บรรทัดแรกคือเนื้อหาเริ่มต้นทั่วไปของไฟล์โฮสต์ บรรทัดที่สองมีชื่อเพิ่มเติม (อาจใช้ได้เฉพาะในระบบภายใน) หลายชื่อ ตัวอย่างแสดงให้เห็นว่าที่อยู่ IP อาจมีชื่อโฮสต์หลายชื่อ (localhost และ loopback) และชื่อโฮสต์อาจถูกแมปกับที่อยู่ IP ทั้ง IPv4 และ IPv6 ตามที่แสดงในบรรทัดแรกและบรรทัดที่สองตามลำดับ ชื่อหนึ่ง ( mycomputer.lan
) อาจแก้ไขได้หลายที่อยู่ ( 192.168.0.8 10.0.0.27
) อย่างไรก็ตามในกรณีนั้นสิ่งใดสิ่งหนึ่งที่ใช้ขึ้นอยู่กับเส้นทาง (และลำดับความสำคัญ) ที่กำหนดไว้สำหรับคอมพิวเตอร์
ระบบปฏิบัติการรุ่นเก่าบางระบบไม่มีวิธีรายงานรายการที่อยู่สำหรับชื่อที่ระบุ