XEM CẬP NHẬT DƯỚI ĐÂY!
Tôi cũng thích sử dụng Dnsmasq trên máy cục bộ của mình và tôi cũng gặp vấn đề này. Đây là giải pháp:
Từ 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/
không có mặt theo mặc định; bạn phải tự tạo ra nó
Cũng từ trang người đàn ông:
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.
Vì vậy, nếu bạn muốn tất cả các truy vấn dns cho tên miền cấp cao nhất dev
được định tuyến đến máy chủ tên cục bộ, bạn sẽ:
# mkdir /etc/resolver
# echo 'nameserver 127.0.0.1' > /etc/resolver/dev
configd
không thay đổi tập tin trong /etc/resolver/
, vì vậy cài đặt này sẽ tồn tại thông qua thay đổi và khởi động lại mạng.
CẬP NHẬT 17 tháng 7 năm 2012
Thật không may, kể từ OS X Lion, trình phân giải hàng đầu (như được hiển thị bởi scutil
--dns
) biến mất khi không có giao diện nào được kích hoạt:
# 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
Lưu ý rằng trình phân giải số 1 trống, nhưng mục nhập máy chủ tên dẫn xuất / etc / decver vẫn còn.
Hóa ra là vì bạn có thể chỉ định miền phân giải trực tiếp trong tệp / etc / decver /, việc chỉ định miền gốc Internet đặc biệt .
gây ra việc tạo một mục nhập trình phân giải toàn cầu trông giống như:
resolver #8
nameserver[0] : 127.0.0.1
Bây giờ tất cả các truy vấn DNS được định tuyến đến localhost, ngay cả khi ngoại tuyến.
Tất nhiên, bạn vẫn sẽ phải giải quyết các tên miền đã chọn của mình là 127.0.0.1 bằng cách sử dụng tùy chọn nào đó như tùy chọn --address của dnsmasq:
# dnsmasq --address=/dev/127.0.0.1
Tóm tắt:
- Đặt tất cả các máy chủ dns giao diện mạng của bạn thành 127.0.0.1:
bộ cài đặt mạng -setdnsservers Ethernet 127.0.0.1
bộ cài đặt mạng -setdnsservers Wi-Fi 127.0.0.1
...
- Tạo một tập tin / etc / decver / bất cứ điều gì:
máy chủ tên 127.0.0.1
miền .
- Thiết lập một máy chủ DNS cục bộ và hạnh phúc.
xem http://opensource.apple.com/source/configd/configd-395.11/dnsinfo/dnsinfo_flatfile.c