Tra cứu tên DNS (là SSH) Không hoạt động sau khi nâng cấp Snow Leopard


14

Tôi nghĩ rằng điều này bắt đầu với bản cập nhật Snow Leopard. Làm sạch thư mục .ssh, vẫn có vấn đề.

~: uname -a
Darwin california-example-com.local 10.0.0 Hạt nhân Darwin Phiên bản 10.0.0: Thứ Sáu ngày 31 tháng 7 22:47:34 PDT 2009; root: xnu-1456.1.25 ~ 1 / RELEASE_I386 i386

~: ssh -V
OpenSSH_5.2p1, OpenSSL 0.9.8k ngày 25 tháng 3 năm 2009

~: ls -l ~ / .ssh

~: nslookup nevada
Máy chủ: 10.94.62.3
Địa chỉ: 10.94.62.3 # 53

Tên: nevada.example.com
Địa chỉ: 10.94.62.3

~: ssh nevada
ssh: Không thể giải quyết tên máy chủ nevada: tên nút cũng như tên dịch vụ được cung cấp hoặc không biết

Bạn có thể ssh đến (a) nevada.example.com và (b) 10.94.62.3 không?
Sven

2
Bạn có thể ping nevada? "Ssh -v nevada" thể hiện điều gì?
markdrayton

Câu hỏi kỳ quặc; Bạn có sử dụng Split DNS và / hoặc có thể ping nevada không?
Chealion

Cảm ơn đã theo dõi ... câu trả lời: ssh nevada.example.com = no ssh 10.94.62.3 = yes (và phải xác nhận khóa máy chủ vì tôi đã xóa máy chủ đã biết) ping nevada = vấn đề giải quyết tên telnet nevada (tho nó không chạy telnetd) = vấn đề phân giải tên Chia DNS = không cố ý, không biết đó là gì :-) Từ ngăn cài đặt mạng OS X, tôi đã nhận được 10.94.62.3 như máy chủ DNS được liệt kê trước khi hai máy chủ được cung cấp bởi ISP của tôi và example.com trong danh sách tên miền tìm kiếm. Các hệ thống khác trên mạng của tôi có thể sử dụng DNS bình thường để ssh đến nevada (và các hệ thống khác).
Peter Cardona

xin lỗi về việc thiếu ngắt dòng trong nhận xét trên ...
Peter Cardona

Câu trả lời:


16

Tôi đã gặp vấn đề chính xác tương tự và thấy một chủ đề về máy Mac mini gặp sự cố DNS trên Thảo luận của Apple cực kỳ hữu ích.

Mấu chốt của vấn đề: mDNSResponder dường như thỉnh thoảng thay đổi thứ tự của các máy chủ DNS mà nó truy vấn và vì vậy nếu nó truy vấn các máy chủ DNS của ISP trước thì nó sẽ không nhận được một bản ghi thích hợp (hoặc nếu bạn đang sử dụng DNS tách thì bạn sẽ nhận được IP công cộng của bạn).

Cách khắc phục tốt nhất cho việc này là đảm bảo (như bạn đã làm) rằng chỉ các máy chủ DNS được yêu cầu được liệt kê trong cài đặt DNS của bạn. Điều này có thể yêu cầu xóa các máy chủ DNS ISP khỏi DHCP của bạn (như tôi cũng phải làm như vậy - tất cả các yêu cầu đều được chuyển tiếp qua máy chủ DNS cục bộ).

Lý do các tiện ích thích dignslookupsẽ thành công như bình thường là chúng đang sử dụng BIND và /etc/resolv.conftrực tiếp không giống với phần còn lại của hệ điều hành.

Để tham khảo trong Snow Leopard, bộ đệm DNS hiện được lưu trữ bởi mDNSResponder và để xóa nó, bạn cần khởi động lại quá trình bằng cách sử dụng sudo killall -HUP mDNSResponder. Bạn có thể nhận thêm thông tin (ghi nhật ký, kết xuất trạng thái nội bộ, v.v.) bằng cách sử dụng các cờ khác nhau cho killalllệnh.

"sudo killall -USR1 mDNSResponder" to enable operation logging.
"sudo killall -USR2 mDNSResponder" to enable packet logging.
"sudo killall -HUP mDNSResponder" to clear the DNS cache.
"sudo killall -INFO mDNSResponder" to dump mDNSRepsonder's internal state.

Nguồn: Snoop Dogg trên cùng một chủ đề.


Cảm ơn, googling đã dẫn tôi đến đây, điều này đã sửa nó. "arp" báo cáo IP sai, đào báo cáo "ip" đúng. Không có số lượng dns tuôn ra cố định nó trước khi tôi thử điều này. Tôi cũng lưu ý rằng tôi cũng phải thực hiện dscacheutil -flushcache. Tôi cũng chỉ ra rằng các bộ định tuyến cục bộ có thể hoạt động kỳ lạ và các ISP cũng không chơi công bằng về mặt đôi khi.
Aitch

9

chúng tôi đã có vấn đề như thế này:

host example.com     <<< WORKED
ping example.com     <<< FAILED

Giải quyết với một cái gì đó như thế này:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

Các ứng dụng trên Mac OS X không sử dụng cùng một cơ chế cho DNS là "host / dig / nslookup".

Sử dụng "host / dig / nslookup" rất hữu ích để xác định đây không phải là sự cố mạng. Đó là một vấn đề với hệ thống cục bộ được giải quyết với các lệnh trên.


wow mà làm việc !!! Tôi đã tìm mọi nơi để tìm giải pháp !!!! Tôi vừa định dạng và khôi phục máy tính xách tay của mình, bạn đã tiết kiệm cho tôi rất nhiều thời gian! cảm ơn! xin lỗi nhưng tôi không thể upvote :-( Lưu ý: My DNS ngừng làm việc sau khi tôi chạy util Onyx, không biết lý do tại sao tôi đã có thể sử dụng đào / nslookup nhưng không có gì khác..

2

Tôi đã gặp phải vấn đề tương tự. Và trong khi khởi động lại mDNSResponder dường như "hoạt động", khởi động lại nó một vài lần mỗi giờ.

Vì vậy, hiện tại, tôi đã "giải quyết" vấn đề bằng cách chạy dnsmasq cục bộ. Để làm việc đó:

  • Xây dựng dnsmasq (tải xuống tgz và makehoặc brew install dnsmasq)
  • Đặt cái này trong một dnsmasq.conftập tin:
decv-file = decv.conf
người dùng = không ai
nhóm = không ai
giao diện = lo0
kích thước bộ đệm = 1024
  • Đặt cái này trong một resolv.conftệp nằm trong cùng thư mục với dnsmasq.conftệp (nb: not /etc/resolv.conf ):
máy chủ tên 8.8.8.8
máy chủ tên 4.2.2.1
máy chủ tên 4.2.2.2
  • Chạy dnsmasqvới sudo dnsmasq --no-daemon --log-queries -C dnsmasq.conf. Đầu ra sẽ trông giống như:
...
dnsmasq: đọc độ phân giải
dnsmasq: sử dụng máy chủ tên 4.2.2.1 # 53
dnsmasq: sử dụng máy chủ tên 4.2.2.2 # 53
dnsmasq: sử dụng máy chủ tên 8.8.8.8 # 53
dnsmasq: đọc / etc / hosts - 6 địa chỉ
  • Mở Tùy chọn mạng và đảm bảo rằng đó 127.0.0.1là máy chủ DNS duy nhất (tùy chọn mạng -> nâng cao -> DNS -> thêm 127.0.0.1)

Mọi thứ sẽ bắt đầu hoạt động tốt trở lại.

Khi mọi thứ đang hoạt động, bạn có thể chạy dnsmasqmà không có --no-daemon--log-queriescác tùy chọn, vì vậy nó sẽ bắt đầu ở chế độ nền và bạn không cần phải mở cửa sổ Terminal.


1

Tôi nhận thấy tôi có 10.94.62.3 trong danh sách máy chủ DNS (khung prefs mạng) theo sau là 2 từ ISP của tôi. Tôi đã xóa 2 cái còn lại, buộc tất cả các tra cứu tên qua 10.94.62.3 cho Vị trí này và bây giờ tôi có thể phân giải tên trên mạng của mình cũng như bên ngoài.

Không biết tại sao điều này làm việc.


1

Tôi đoán chúng tôi có một vấn đề tương tự, như tôi đã mô tả ở đây: /apple/50457/nslookup-works-ping-and-ssh-dont-os-x-lion-10-7-3

Tôi tin rằng, vấn đề nằm ở cấu hình tên miền tìm kiếm: ping / ssh đang cố sử dụng gethostbyname2()mà không thành công vì tên không chạy được nữa (ít nhất là trong Lion) và /etc/resolv.confdo đó, các tên miền tìm kiếm được định cấu hình sẽ bị bỏ qua. /etc/hostslà giải pháp cuối cùng gethostbyname2()và do đó ssh hoạt động trở lại với các mục thích hợp trong /etc/hosts. Nên sửa bởi Apple imho.


0

Bạn đã thử nevada-example-com.local chưa?


Đã không thử điều đó, nhưng có vấn đề giải quyết tương tự. Bắt đầu có vẻ như KHÔNG CÓ (ssh, telnet, ping, http) giải quyết thông qua máy chủ mà nslookup đang mặc định. Làm thế nào mà có thể được? Có lẽ mâu thuẫn giữa cài đặt cấp độ OS X và một số / etc / bất kỳ tệp nào mà triển khai BSD cơ bản quan tâm?
Peter Cardona

Không, OS X không sử dụng các mức init - thậm chí không phải là hệ thống tổng hợp BSD.
Jeremy L

0
dscacheutil -flushcache

Lệnh đó làm mới bộ đệm DNS của bạn.

10.94.62.3 có phải là Máy chủ DNS mà bạn tin tưởng không? Nếu vậy, tại sao chỉ có một? Bạn nên có ít nhất 2 máy chủ DNS để tham khảo cho mục đích chuyển đổi dự phòng. Nếu con đó đi xuống, bạn là một con vịt ngồi.


0

Tra cứu thứ tự DNS dường như hoạt động khác nhau trong Snow Leopard. Nếu bạn không thể tra cứu tên miền, hãy kiểm tra xem bạn có máy chủ DNS không hợp lệ nào được liệt kê trong tùy chọn mạng của bạn không. Nếu bạn đang sử dụng thiết lập DHCP tiêu chuẩn, thì bạn không nên có bất kỳ Máy chủ DNS nào được liệt kê. Trước khi nâng cấp, tôi đã có một máy chủ DNS cũ được liệt kê và nó không ảnh hưởng gì. Khi tôi nâng cấp, tôi hoàn toàn mất dns.

Tùy chọn mạng mở> Chọn sân bay> Nâng cao. Chọn tab DNS và xóa mọi Máy chủ DNS không hợp lệ.


0

Bạn đã xem Console chưa? (Ứng dụng -> Tiện ích -> Bảng điều khiển) Bạn có thể thấy rằng mDNSResponder đang hiển thị bên dưới: Thông tin chẩn đoán và sử dụng -> Báo cáo chẩn đoán hệ thống

Nếu nó bị sập do một chương trình khác đang tải các mô-đun (như Little Snitch hoặc Hands Off), bạn có thể thấy nó ở đó.


-1

Tôi gặp vấn đề tương tự với nslookup khi giải quyết hộp windows của mình, nhưng ping cho tôi một "máy chủ không xác định". Tôi đã thử những gì Navdeep đề xuất và đã xóa các máy chủ tên trong tab Tùy chọn mạng-> Nâng cao-> DNS. Nó sẽ không cho phép tôi trừ chúng, chúng có màu xám. Cuối cùng tôi đã nhấn + và chúng biến mất. Tôi đã hủy thêm một cái mới và áp dụng các thay đổi, một khi không có máy chủ DNS nào hiển thị. Ping bắt đầu làm việc sau đó. Điều kỳ lạ là máy chủ bộ định tuyến / DHCP cục bộ của tôi là người đầu tiên trong danh sách và là người chịu trách nhiệm giải quyết hộp Windows. Nó phải là một cái gì đó kỳ lạ với thứ tự. Máy chủ tên khác được liệt kê, là một NS công việc và sẽ không thể giải quyết máy chủ windows. CẢM ƠN Navdeep!

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.