ดูการปรับปรุงด้านล่าง!
ฉันยังสนุกกับการใช้ Dnsmasq บนเครื่องของฉันและฉันก็มีปัญหานี้เช่นกัน นี่คือทางออก:
จากman 5 resolver
:
The configuration for a particular client may be read from a file
having the format described in this man page. These are at present
located by the system in the /etc/resolv.conf file and in the files
found in the /etc/resolver directory.
/etc/resolver/
ไม่ปรากฏตามค่าเริ่มต้น คุณต้องสร้างมันเอง
ยังมาจากหน้าคน:
domain
Domain name associated with this resolver configuration. This
option is normally not required by the Mac OS X DNS search system
when the resolver configuration is read from a file in the
/etc/resolver directory. In that case the file name is used as the
domain name.
ดังนั้นหากคุณต้องการสอบถาม DNS ทั้งหมดสำหรับโดเมนระดับบนสุดของdev
ที่จะกำหนดเส้นทางไปยัง nameserver ท้องถิ่นคุณจะ:
# mkdir /etc/resolver
# echo 'nameserver 127.0.0.1' > /etc/resolver/dev
configd
ไม่เปลี่ยนแปลงไฟล์ใน/etc/resolver/
ดังนั้นการตั้งค่านี้จะคงอยู่ผ่านการเปลี่ยนแปลงและรีบูตเครือข่าย
อัปเดต 17 กรกฎาคม 2555
น่าเสียดายที่ OS X Lion ตัวแก้ไขอันดับต้น ๆ (ดังแสดงโดยscutil
--dns
) จะหายไปเมื่อไม่มีส่วนต่อประสานที่ใช้งานอยู่:
# scutil --dns # Online
DNS configuration
resolver #1
nameserver[0] : 127.0.0.1
...
resolver #8
domain : dev
nameserver[0] : 127.0.0.1
# scutil --dns # Offline
DNS configuration
resolver #1
...
resolver #8
domain : dev
nameserver[0] : 127.0.0.1
ขอให้สังเกตว่าตัวแก้ไข # 1 ว่างเปล่า แต่รายการเนมเซิร์ฟเวอร์ที่ได้รับ / etc / resolver ยังคงอยู่
ปรากฎว่าเนื่องจากคุณสามารถระบุโดเมนตัวจำแนกโดยตรงในไฟล์ / etc / resolver / ไฟล์การระบุโดเมนรูทอินเทอร์เน็ตพิเศษ.
ทำให้เกิดการสร้างรายการตัวแก้ไขส่วนกลางที่มีลักษณะดังนี้:
resolver #8
nameserver[0] : 127.0.0.1
ตอนนี้แบบสอบถาม DNS ทั้งหมดจะถูกส่งไปยัง localhost แม้ในขณะออฟไลน์
แน่นอนว่าคุณจะต้องแก้ไขโดเมนที่คุณเลือกเป็น 127.0.0.1 โดยใช้ตัวเลือก --address ของ dnsmasq:
# dnsmasq --address=/dev/127.0.0.1
สรุป:
- ตั้งค่าเซิร์ฟเวอร์อินเทอร์เฟซเครือข่ายทั้งหมดของคุณเป็น 127.0.0.1:
networksetup -setdnsservers Ethernet 127.0.0.1
networksetup -setdnsservers Wi-Fi 127.0.0.1
...
- สร้างไฟล์ / etc / resolver / อะไรก็ตาม:
เนมเซิร์ฟเวอร์ 127.0.0.1
โดเมน
- ตั้งค่าเซิร์ฟเวอร์ DNS ในเครื่องและยินดี
cf เลย http://opensource.apple.com/source/configd/configd-395.11/dnsinfo/dnsinfo_flatfile.c