บน Ubuntu 10.04 ควร / etc / hostname มี FQDN ของเซิร์ฟเวอร์หรือไม่


คำตอบ:


12

ไม่เพียงแค่ส่วนชื่อโฮสต์ ตามหน้าคนของ Ubuntu , /etc/hostnameควรมีเฉพาะส่วนชื่อโฮสต์ของชื่อโฮสต์ที่ไม่ FQDN:

FQDN

คุณไม่สามารถเปลี่ยน FQDN (ตามที่ส่งคืนโดยชื่อโฮสต์ --fqdn) หรือชื่อโดเมน DNS (ที่ส่งคืนโดย dnsdomainname) ด้วยคำสั่งนี้ FQDN ของระบบคือชื่อที่ตัวจำแนก (3) ส่งคืนชื่อโฮสต์

ในทางเทคนิค: FQDN คือชื่อ gethostbyname (2) ส่งคืนชื่อโฮสต์ที่ส่งคืนโดย gethostname (2) ชื่อโดเมน DNS เป็นส่วนหลังจุดแรก

ดังนั้นจึงขึ้นอยู่กับการกำหนดค่า (โดยปกติจะอยู่ใน /etc/host.conf) วิธีที่คุณสามารถเปลี่ยนได้ โดยปกติ (หากไฟล์โฮสต์ถูกวิเคราะห์ก่อน DNS หรือ NIS) คุณสามารถเปลี่ยนได้ใน / etc / hosts

หมายเหตุ

ชื่อโฮสต์ตระกูลที่อยู่จะพยายามเมื่อค้นหา FQDN, นามแฝงและที่อยู่เครือข่ายของโฮสต์นั้นพิจารณาจากการกำหนดค่าตัวแก้ไขของคุณ ตัวอย่างเช่นบนระบบ GNU Libc ตัวแก้ไขสามารถสั่งให้ลองค้นหา IPv6 ก่อนโดยใช้ตัวเลือก inet6 ใน /etc/resolv.conf

ไฟล์

/ etc / hosts / etc / hostname ไฟล์นี้ควรมีชื่อโดเมนเท่านั้นและไม่ใช่แบบเต็ม FQDN


ฉันไม่คิดว่ามันชัดเจนจากหน้าคนอย่างที่คุณเห็น แต่ฉันคิดว่าฉันจะทำตามคำแนะนำบนเซิร์ฟเวอร์ของฉัน ขอบคุณ
RyanTM

1
"/ etc / hostname ไฟล์นี้ควรมีชื่อโดเมนเท่านั้นและไม่ใช่ FQDN แบบเต็ม" ดูเหมือนจะชัดเจนสำหรับฉัน ... แต่ฉันเห็นด้วยอาจทำให้เกิดความสับสนได้
Josh

โอ้ ฉันคิดว่าฉันไม่ได้อ่านประโยคนั้นโดยไม่ตั้งใจ ฉันคิดว่าฉันอ่านอย่างระมัดระวังหลายครั้ง ฉันขอแนะนำให้ใช้ประโยคนั้น
RyanTM

Ubuntu 12.04 ซึ่งจัดส่งมาพร้อมกับ hostname-3.15ubuntu1 ได้เปลี่ยนhostname(1)man page เป็น: " /etc/hostname: ในอดีตไฟล์นี้ควรมีเพียงชื่อโฮสต์เท่านั้นและไม่ใช่ FQDN มาตรฐานที่สมบูรณ์ทุกวันนี้ซอฟต์แวร์ส่วนใหญ่สามารถรับมือกับ FQDN เต็มได้ที่นี่ ไฟล์นี้ถูกอ่านในเวลาบูตโดยสคริปต์การเริ่มต้นระบบเพื่อตั้งชื่อโฮสต์ "
200_success

7

Josh ชี้ให้เห็นสิ่งที่ Ubuntu แนะนำ แต่ฉันไม่แน่ใจว่าเป็นกฎที่ยากและรวดเร็ว

/etc/hostnameใช้ในการตั้งชื่อโฮสต์ของระบบซึ่งเป็นสิ่งเดียวกับพิมพ์หรือhostname uname -nชื่อนั้นจะถูกใช้ในการแจ้งให้ลงชื่อเข้าใช้เช่นบนคอนโซลเสมือนหรือที่หน้าจอเข้าสู่ระบบ Gnome GDM

ในฐานะที่เป็นหน้าคนพูดว่ามันยังใช้เป็นข้อมูลในการค้นหา DNS เมื่อทำหรือhostname --fqdndnsdomainname

Technically: The FQDN is the name gethostbyname(2) returns for the host name
returned by gethostname(2). The DNS domain name is the part after the first dot.

ซึ่งหมายความว่าหากเป็นคำเปล่าตัวแก้ไขจะผนวกโดเมนที่อยู่ในรายการsearchหรือdomainการตั้งค่า/etc/resolv.confเพื่อผนวกFQDN หากคุณมี FQDN ใน / etc / hostname หมายความว่าไม่ต้องลองผนวกโดเมนหนึ่งโดเมนหรือมากกว่า: ชื่อนั้นไม่คลุมเครือ

ดังนั้นฉันจะบอกว่าอย่างถูกต้อง ฉันจะสนใจถ้าใครสามารถแสดงเป็นอย่างอื่น


คุณขวานี้ไม่ได้เป็นกฎอย่างหนักและรวดเร็ว: ผมเปลี่ยนคำตอบของฉันเพราะบางส่วนของเซิร์ฟเวอร์ของฉันไม่ได้มีชื่อโฮสต์เต็ม/etc/hostname! หลังจากที่ฉันตอบและมองหาการอ้างอิงฉันรู้ว่าฉันกำลังทำเอกสารต่อต้านอย่างเป็นทางการ
Josh

1

ด้วยการติดตั้งlibnss-myhostnameคุณสามารถเขียน fqdn ไป/etc/hostnameและทำได้ มิฉะนั้นคุณต้องแก้ไข/etc/hostsเพื่อให้ตรงกับชื่อย่อและแมปกับชื่อที่ผ่านการรับรองโดยสมบูรณ์ (คุณสามารถใส่ไว้ใน dns ได้ แต่นั่นไม่ปลอดภัย) การใช้อินเทอร์เฟซแบบวนรอบที่ไม่ใช่ค่าเริ่มต้นจะมีลักษณะดังนี้:

127.0.0.2 hostname.fully.qualified hostname
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.