ดูเหมือนว่าไฟล์โฮสต์จะถูกละเว้น


18

ฉันมีกล่องเดสก์ท็อป Ubuntu เกือบใหม่ ติดตั้งระบบปฏิบัติการสองสัปดาห์ที่ผ่านมาและอัปเดตจากที่เก็บ karmic สัปดาห์ที่แล้วฉันไม่มีปัญหากับ DNS แต่สัปดาห์นี้มีบางอย่างเปลี่ยนไป ฉันไม่แน่ใจว่าจะต้องทำอะไรและเมื่อใดและไม่แน่ใจว่าฉันเปลี่ยนแปลงการกำหนดค่าใด ๆ

ดังนั้นตอนนี้ฉันมีสถานการณ์แปลก ๆ ตามการแก้ไขชื่อบันทึกควรทำงานได้ตามปกติ

/ etc / hosts

127.0.0.1   localhost test
127.0.1.1   desktop

/etc/host.conf

order hosts,bind
multi on

/etc/resolv.conf

# Generated by NetworkManager
search search servers obtained via DHCP
nameserver 192.168.0.3

/etc/nsswitch.conf

passwd:         compat
group:          compat
shadow:         compat

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

แต่ถ้าความจริงมันไม่ได้

user @ test ~> การทดสอบการ ping

PING localhost (127.0.0.1) 56(84) bytes of data.
[skip]

ส่ง Ping เป็นเรื่องปกติ

user @ test ~> การทดสอบโฮสต์

test.mydomain.com has address xx.xxx.161.201

ฉันสงสัยว่า NetworkManager อาจทำให้เกิดพฤติกรรมไม่เหมาะสมนี้ แต่ไม่รู้จะเริ่มตรวจสอบได้ที่ไหน ความคิดข้อเสนอแนะ?

คำตอบ:


20

/etc/hostsด้วยการกำหนดค่านี้ใช้งานมากที่สุดอย่างมีความสุขจะทำงานร่วมกับรายการของคุณจาก

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

เช่นเดียวกันสำหรับdigและnslookup- เป็น DNS เฉพาะเช่นกัน


ดังนั้นคุณกำลังพูดว่าhostยูทิลิตี้ไม่ได้ใช้/etc/hosts? และในกรณีของฉันไม่มีอะไรจะแก้ไขได้?
z4y4ts

yup, สวยมาก - ไม่มีอะไรให้ดูที่นี่ :)
Alnitak

สิ่งที่ฉันไม่ได้รับคือhost> เคยเป็น <เป็นคำสั่งการสอบถามชื่อ "ปกติ" เชื่อฟัง/etc/nsswitch.conf
mveroone

@Kwaio ฉันไม่สามารถหาหลักฐานในแหล่งที่มาของ ISC ที่hostเคยทำมา
Alnitak

ฉันอาจใช้การกระจายการใช้งานที่ไม่ดี
mveroone

15

hostคำสั่ง (พร้อมด้วยdigและnslookup) เป็นส่วนหนึ่งของbindสาธารณูปโภค DNS ในฐานะที่เป็นโปรแกรมแก้ไขค่า DNS โปรแกรมนี้จะทำการแก้ไข DNS เพียงอย่างเดียว

หากคุณสนใจที่จะดึงรายการจากlibnssที่เก็บข้อมูลใด ๆ-driven คุณสามารถใช้getentโปรแกรม ในการรับรายการโฮสต์ให้ใช้รายการดังนี้:

getent hosts google.com

นี้ต่อไปนี้เพื่อความละเอียดที่กำหนดไว้ภายใต้hosts:ใน/etc/nsswitch.confในการสั่งซื้อซึ่งรวมถึง/etc/hostsถ้า "ไฟล์" จะ lised เป็นหนึ่งในตัวเลือก


ขอบคุณสำหรับgetentคำสั่งเตือนให้ฉัน
Emmanuel

2
ฉันเชื่อว่าทุกวันนี้ควรใช้อย่างใดอย่างหนึ่งgetent ahostsแทนที่จะใช้getent hostsเพราะการgetent hostsใช้งานgethostbyaddr()หรือgethostbyname*()ล้าสมัย หากฉันเข้าใจถูกต้องให้getent hostsเลียนแบบว่าโปรแกรม UNIX C รุ่นเก่าใช้งานอย่างไรและgetent ahostsเลียนแบบวิธีที่โปรแกรม moderm ควรทำงาน
Mikko Rantalainen

0

สำหรับฉันปัญหานี้เกิดขึ้นเนื่องจากสิทธิ์ของไฟล์ที่ไม่ถูกต้อง เฉพาะ root เท่านั้นที่สามารถอ่าน / etc / hosts ไฟล์ควรอ่านได้ทั่วโลก

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