ควร / etc / hosts มีรายการเช่น '127.0.0.1 localhost myhost.example.org myhost' หรือไม่


16

เมื่อดูระบบ Linux และ FreeBSD ที่หลากหลายฉันสังเกตว่าในบางระบบ/etc/hostsมีรายการสำหรับชื่อโฮสต์สาธารณะของโฮสต์ แต่ไม่ใช่ในระบบอื่น ๆ

การปฏิบัติที่ดีที่สุดที่นี่คืออะไร? ไฟล์ / etc / hosts ของฉันควรมีรายการสำหรับโฮสต์ FQDN (เช่น myhost.example.org) และสำหรับชื่อโฮสต์แบบย่อ (เช่น myhost) หรือไม่ บันทึกสำหรับ FQDN ควรชี้ไปที่ localhost หรือควรชี้ไปที่ IP ภายนอกของกล่อง

ตัวอย่างเช่นการกำหนดค่าเริ่มต้นในกล่อง RHEL / EL จำนวนมากไม่ได้ใส่ชื่อโฮสต์สาธารณะไว้ใน/etc/hosts:

myhost # cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
myhost #

ตัวแปรอื่นคือชื่อโฮสต์แบบย่อและ FQDN ของโฮสต์ชี้ไปที่ 127.0.0.1 ฉันได้รับแจ้งว่านี่เป็นวิธีปฏิบัติแบบเก่าที่ขมวดคิ้วในทุกวันนี้ แต่ผู้ดูแลระบบจำนวนมากยังคงทำเช่นนี้

myhost # cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 myhost myhost.example.org
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
myhost #    

ตัวแปรที่สามคือ FQDN ของโฮสต์และชื่อโฮสต์แบบสั้นจะได้รับที่อยู่ IP ภายนอกของโฮสต์ ความแปรปรวนที่สามนี้ดูเหมือนจะเหมาะสมที่สุดสำหรับฉันเพราะมันช่วยลดการค้นหาเซิร์ฟเวอร์ DNS

myhost # cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
74.125.239.xxx myhost myhost.example.org
myhost #  

การปฏิบัติที่ดีที่สุดที่นี่คืออะไร?


2
มันช่วยลดสิ่งที่นามแฝงที่โปรแกรมใช้ (เช่น Mysql ชอบ / จำเป็นต้องมี 'localhost' alias) 127.0.0.1 localhost myhostควรจะเพียงพอและ74.125.239.xxx myhost myhost.example.orgอย่างที่คุณบอกว่าช่วยประหยัด DNS lookups "แนวปฏิบัติที่ดีที่สุด" เว้นแต่จะมีมาตรฐานคือ "สิ่งที่ผู้มีความรู้ใช้"
LinuxDevOps

คำตอบ:


12

คุณยินดีที่จะยอมรับจุดทำงาน DNS ในสภาพแวดล้อมของคุณหรือไม่ บริการ / แอพพลิเคชั่นบางตัวจะล้มเหลวในการกำหนดค่าบางอย่างหากระบบไม่สามารถแก้ไขชื่อของเครื่องในท้องถิ่นได้

หากคุณมีบริการที่สำคัญอย่างยิ่งที่ต้องทำงานในทุกสถานการณ์การเพิ่มรายการในไฟล์โฮสต์เพื่อให้บริการสามารถทำงานต่อในสถานการณ์ที่การแก้ไข DNS ล้มเหลว

หากคุณสามารถยอมรับ DNS ของคุณเป็นจุดที่เกิดความล้มเหลวหรือหากบริการของคุณไม่ได้ล้มเหลวในกรณีที่มีการแก้ไขไม่ได้คุณสามารถหลีกเลี่ยงรายการการกำหนดค่าในไฟล์โฮสต์ได้

ฉันขอแนะนำให้คุณทำให้เซิร์ฟเวอร์ DNS ของคุณมั่นคงมากที่สุดและถ้าคุณต้องกำหนดค่าไฟล์โฮสต์ให้ใช้ระบบจัดการการกำหนดค่าเพื่อทำ คุณควรหลีกเลี่ยงการสัมผัสไฟล์โฮสต์ด้วยตนเอง


13
เพียงเพื่อเพิ่มสิ่งนี้ในกรณีส่วนใหญ่/etc/hostsจะแทนที่ DNS ไม่ใช้เป็นทางเลือกในกรณีที่ DNS ล้มเหลว นี่คือความแตกต่างที่ฉันคิดว่าควรจะทำ (ไม่พยายามที่จะจู้จี้เลือก.) /etc/nsswitch.confมันทั้งหมดขึ้นอยู่กับคำสั่งที่กำหนดไว้ใน
Aaron Copley

4
ปัญหาอื่น ๆ คือการสอบถามเซิร์ฟเวอร์ DNS นั้นช้ากว่ามากจากนั้นตรวจสอบ/etc/hostsไฟล์ แอปพลิเคชันจำนวนมากสอบถามชื่อโฮสต์ซ้ำแล้วซ้ำอีกหลายครั้งต่อวินาที การเพิ่มชื่อโฮสต์ให้/etc/hostsจะช่วยลดเวลาในการตอบสนองและควรเพิ่มความเร็วของแอปพลิเคชัน
Stefan Lasiewski
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.