ฉันต้องการแสดงเซิร์ฟเวอร์ DNS ที่ใช้โดยการตั้งค่าเครือข่ายปัจจุบันใน OS X จากบรรทัดคำสั่ง
ฉันต้องการแสดงเซิร์ฟเวอร์ DNS ที่ใช้โดยการตั้งค่าเครือข่ายปัจจุบันใน OS X จากบรรทัดคำสั่ง
คำตอบ:
มีหลายวิธี - ต่อไปนี้เป็นสองวิธี:
cat /etc/resolv.conf-หรือ-
scutil --dnsdigหรือnslookupไม่จำเป็นต้องให้ภาพที่สมจริงว่าแอพพลิเคชั่น macOS สามารถแก้ไขชื่อโดเมนจากระบบโลคัลได้อย่างไรโดยเฉพาะอย่างยิ่งเมื่อมีการกำหนดค่า DNS หลายโดเมน (เฉพาะโดเมน) เช่นเมื่อใช้ไคลเอนต์ VPN สำหรับหลาย ๆ การเชื่อมต่อพร้อมกัน แทนที่จะใช้nslookupหรือdigใช้dscacheutil -q host -a name somehostname.comเพื่อทดสอบการแก้ปัญหา DNS โดยคำนึงถึงเซิร์ฟเวอร์ DNS ที่กำหนดค่าทั้งหมดรวมถึงลำดับความสำคัญ
                    cat /etc/resolv.confดูเหมือนจะไม่ใช่โซลูชันที่ "น่าเชื่อถือ" อีกต่อไป นี่คือการแจ้งเตือนที่ฉันได้รับใน macOS High Sierra เมื่อใช้งาน: (ขออภัยสำหรับการจัดรูปแบบ - ความคิดเห็นไม่รองรับการแบ่งบรรทัดอย่างง่าย) # macOS ประกาศ # # ไฟล์นี้ไม่ได้รับการพิจารณาสำหรับการแก้ไขชื่อโฮสต์ DNS, ความละเอียด # ที่อยู่หรือ กลไกการกำหนดเส้นทางการสืบค้น DNS ใช้โดย # กระบวนการส่วนใหญ่ในระบบนี้ # # ในการดูการกำหนดค่า DNS ที่ใช้โดยระบบนี้ให้ใช้: # scutil --dns
                    scutil --dns | grep nameserverที่จะเพียงแค่ได้รับเซิร์ฟเวอร์ DNS
                    คำสั่ง shell ต่อไปนี้มีประโยชน์ในการแสดงรายการ DNS ปัจจุบัน:
grep nameserver <(scutil --dns)หากต้องการกรองออกสำหรับสคริปต์คุณสามารถไพพ์เอาต์พุตawk '{print $3}'หรือgrep -o "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+"คำสั่ง
scutil --dns | grep nameserverถูกต้อง (มีเพียงไวยากรณ์ที่แตกต่างกัน)
                    
networksetup -getdnsserversไม่ได้กับเซิร์ฟเวอร์ DNS ที่กำหนด DHCPscutilฉันมักจะลืมเกี่ยวกับ 'sc' หมายถึงการกำหนดค่าระบบ? ไม่แน่ใจว่าจะกำหนดค่าระบบมาก ...