Tra cứu DNS được cấu hình cho OSX Mountain Lion như thế nào?


33

Nếu tôi gửi độ phân giải của mình, tôi sẽ thấy thông báo này:

#
# Mac OS X Notice
#
# This file is not used by the host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.
#
# This file is automatically generated.
#

Tôi đang cố gắng thêm một mục DNS. Tôi đã chỉnh sửa tệp máy chủ của mình và xóa bộ đệm dns, nhưng tên không được giải quyết nếu tôi sử dụng host servername. Tôi nghĩ có lẽ đó hostkhông phải là cấu hình để xem hoststập tin. Làm cách nào tôi có thể giải quyết mục nhập mới của mình và OSX sử dụng cái gì nếu không resolv.conf?

Câu trả lời:


17

Công cụ lưu trữ không chỉ đơn giản giải quyết các tên (như trong, sử dụng trình phân giải tên hệ thống) mà thực sự truy vấn các máy chủ dns (như trong, gửi các gói đến udp / 53 và có thể là tcp / 53): nó không biết cũng không sử dụng hoststệp cục bộ .

Nếu bạn muốn kiểm tra trình phân giải của hệ điều hành (như trong, gethostbyname () và các hàm libc tương tự), bạn có thể thử ping tên bạn đã thêm vào /etc/hostsvà nó sẽ tôn trọng những gì bạn đặt trong tệp đó.

Ngoài ra, như bạn đã tìm thấy DNS tra cứu trên Mac OSX không sử dụng /etc/resolv.confvà cách chính xác để định cấu hình máy chủ DNS nào được truy vấn là trong networksetupcông cụ gui và / hoặc công cụ dòng lệnh Cài đặt mạng . Tôi thực sự không biết liệu bạn có thể định cấu hình thứ tự các nguồn được thử hay không, nhưng hành vi tiêu chuẩn là thử /etc/hostscác máy chủ đầu tiên và sau đó.


1
Tôi tìm thấy một trình bao bọc perl cho getaddrinfo: search.cpan.org/~pevans/Socket-GetAddrInfo-0.22
Ben Flynn

26

Bộ phân giải DNS có thể được thêm vào trong OS X thông qua networksetuplệnh:

sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4

Chèn tên của kết nối mạng khi thích hợp. Các trình phân giải này sẽ xuất hiện trong tệp độ phân giải vì nó được tạo tự động, nhưng các chỉnh sửa trực tiếp thành phân giải sẽ không dẫn đến các trình phân giải đó được sử dụng. Tôi giả sử các bộ giải quyết được lưu trữ trong một số nhiều ở đâu đó; Tôi sẽ tìm kiếm và báo cáo lại.

Đã chỉnh sửa để thêm: Có vẻ như tệp plist XML lưu trữ các máy chủ DNS /Library/Preferences/SystemConfiguration/preferences.plist.

Tệp máy chủ trong / private / etc / hosts sẽ hoạt động để buộc độ phân giải cho các tên cụ thể (/ etc là một liên kết tượng trưng đến / private / etc). Bạn có thể xác minh cú pháp của bạn và rằng bạn đang chỉnh sửa tệp chính xác?


Vì vậy, tôi có thể sử dụng lệnh này để thêm các tập tin máy chủ?
Ben Flynn

bạn không thể, và bạn không cần phải
Luke404

Không, nếu bạn muốn thêm tên vào tệp máy chủ, chỉ cần thêm chúng trực tiếp. Tệp máy chủ được kiểm tra trước khi phân giải tên, theo sau là bộ đệm phân giải cục bộ và sau đó là máy chủ DNS được định cấu hình của bạn. Sử dụng lệnh "host" để kiểm tra mặc dù nó sẽ không kiểm tra tệp máy chủ cục bộ. Một cách dễ dàng để kiểm tra là sử dụng tiện ích mạng như ping.
phoebus

1
Đôi khi giao diện nhận được tên ngớ ngẩn, để có được tên chính xác mà bạn cần, bạn cũng có thể thực hiện networksetup -listallnetworkservices , nếu trong đó có khoảng trắng, bạn cần trích dẫn toàn bộ tên, tức là:sudo networksetup -setdnsservers 'white space' 8.8.8.8 8.8.4.4
Marcin

2
Có thể định cấu hình trình phân giải để sử dụng một cổng khác với 53 không?
Rune FS
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.