nslookup hoạt động với /etc/resolv.conf, ping và ssh không


12

Trong mạng lưới trường đại học địa phương của chúng tôi, tôi có (lấy bằng DHCP) thiết lập sau trong /etc/resolv.conf:

search a.domain.com b.domain.com domain.com
nameserver x.x.x.x
nameserver y.y.y.y

Các cài đặt cũng giống nhau trong Tùy chọn hệ thống. Vấn đề sau đây xảy ra:

nslookup server

hoạt động và đang sử dụng một trong các máy chủ tên để yêu cầu chính xác cho server.a.domain.com. Nếu tôi cố gắng ping, tuy nhiên,

ping server

thất bại với máy chủ không thể truy cập.

ping server.a.domain.com

làm. Thêm thủ công máy chủ có địa chỉ IP thu được bởi nslookup vào / etc / hosts cũng khiến ping hoạt động, nhưng "giải pháp" này cắt ngang các máy chủ tên và do đó không lý tưởng (và tôi cũng sẽ phải thêm khoảng 20 mục khác). có biết thứ gì gây ra không? Tại sao ping không sử dụng kết quả của nslookup / các tên miền tìm kiếm?

ssh server

cũng thất bại, đó là vấn đề thực sự / sự bất tiện.

Tôi đã thêm Luôn luôn Tìm kiếm Tên miền vào mDNSResponder, nhưng cách khắc phục này chỉ giúp khắc phục sự cố khi sử dụng server.foo.

Tôi đang sử dụng OS X Lion 10.7.3.


Gói Ping có thể bị chặn bởi thiết bị mạng. Điều tương tự với các gói ssh - họ có thể không muốn bạn làm những gì bạn làm.
Thorbjørn Ravn Andersen

Xem giải pháp dưới đây, đó không phải là vấn đề.
tholu

"Máy chủ không thể truy cập" có nghĩa là sự cố kết nối mạng (hoặc ICMP bị chặn), không phải là sự cố phân giải DNS
Daniel Serodio

Câu trả lời:


2

Vâng, bạn đã đọc các ý kiến ​​ở đầu /etc/resolv.conf?

# 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.

Giải pháp chính xác là thêm các miền tìm kiếm thông qua bảng điều khiển Mạng trong Tùy chọn hệ thống như được mô tả ở đây .


Tôi đã làm. Các miền tìm kiếm được tự động nhập vào bảng điều khiển Mạng trong Cấu hình tùy chọn hệ thống trên mỗi cấu hình DHCP (và do đó bị mờ đi và không thể thay đổi). Các giá trị / cấu hình chính xác tương tự được / được tìm thấy trong /etc/resolv.conf.
tholu

Tôi không biết phải nói gì với bạn. Tôi nhận được cả cài đặt Ethernet và WiFi qua DHCP và có thể thay đổi miền tìm kiếm của mình thông qua bảng Tùy chọn hệ thống.
Old Pro

Các tên miền tìm kiếm là chính xác trong Tùy chọn hệ thống và /etc/resolv.conf - vấn đề là, ping và ssh không sử dụng nó. Nếu họ sử dụng đầu ra của nslookup, mọi thứ sẽ hoạt động tốt, nhưng bằng cách nào đó, họ không làm thế. Họ tìm kiếm / etc / hosts, mặc dù.
tholu

Tôi đã tự thêm các tên miền tìm kiếm (mặc dù chúng bị mờ đi) từng cái một thông qua Tùy chọn hệ thống và bây giờ nó hoạt động. Cảm ơn!
tholu

4

Tôi đã từng gặp vấn đề tương tự. Giải pháp tôi sử dụng là tạo thư mục / etc / decver. Trong thư mục đó, tạo một tệp có tên cho mỗi tên miền bạn muốn giải quyết. Bên trong mỗi tập tin nên có hai dòng

nameserver 10.0.100.2
domain  home.cainmanor.com

Các tập tin ở trên sẽ được đặt tên / etc / decver / home. Nó có thể cần được đặt tên là home.cainmanor.com, nhưng tôi không thể kiểm tra nó ngay bây giờ.

Chúc may mắn!


Tôi đã làm cho nó hoạt động bằng cách đặt từng tên miền tìm kiếm thông qua Tùy chọn hệ thống, ghi đè cài đặt DHCP mà OS X không thể phân tích chính xác rõ ràng. Tôi không thể thử giải pháp của bạn, nhưng cảm ơn!
tholu

Cách tiếp cận này hoạt động độc đáo khi máy khách VPN công ty của bạn làm sai đối với các tùy chọn hệ thống nhất thời.
Peter

1

Tôi tin rằng, vấn đề nằm trong 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 đó, 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.

Thêm thủ công các tên miền tìm kiếm từng cái một cố định nó, xem giải pháp ở trên.


Khi tôi thêm miền tìm kiếm vào kết nối WiFi của mình (được định cấu hình qua DNS) trong OS 10.7.3 qua Tùy chọn hệ thống -> Bảng điều khiển mạng, nó được sử dụng bởi ping và ssh như tôi mong đợi. Tôi không chạm vào /etc/resolv.conf hoặc / etc / hosts theo cách thủ công / trực tiếp, nhưng các thay đổi từ Tùy chọn hệ thống được tự động phản ánh trong /etc/resolv.conf. OS X thực hiện rất nhiều thứ khác với các hệ thống Unix khác và đây là một trong số đó.
Old Pro

1
Cảm ơn, điều này đã làm cho nó hoạt động bằng cách thêm từng tên miền tìm kiếm theo cách thủ công, xem nhận xét của tôi về giải pháp được đề xuất của bạn ở trên.
tholu

Thêm tên miền tìm kiếm không khắc phục được sự cố ... Có ai khác có giải pháp khác không?

Làm thế nào bạn thêm chúng?
tholu

1

Tôi thường gặp vấn đề này, khi Mac Book Pro (phiên bản OS X 10.10.1) của tôi đã ngủ. Hãy đánh thức nó và tôi không thể sử dụng tên máy chủ trên mạng của mình (và ping cũng không hoạt động). nslookup hoạt động tốt. Không thể thấy bất kỳ thông báo có liên quan trong / var / log. Chỉ cần để lại một vài phút và xin chào, nó hoạt động trở lại .....


0

Tôi đã trả lời điều này ở một nơi khác, vì đó là một sửa chữa đơn giản cho tôi và tôi không thể tìm thấy câu trả lời phù hợp với mình ở bất cứ nơi nào khác.

Sau khi khởi động lại mDNSResolver hàng chục lần như khuyến nghị trên các luồng khác:

sudo killall -HUP mDNSResponder

Cuối cùng tôi đã thử một cái gì đó khác. Tôi đã tắt Wi-Fi và xóa tất cả các mạng ưa thích của mình. Sau đó, tôi đã thiết lập lại kết nối Wi-Fi và mọi thứ đều hoạt động tốt:

  1. Menu Apple -> Tùy chọn hệ thống -> Wi-Fi (ở bên trái)
  2. 'Tắt Wi-Fi' rồi chọn 'Nâng cao'
  3. Xóa kết nối Wi-Fi mà bạn gặp sự cố (hoặc tất cả chúng nếu bạn muốn). Thực hiện việc này bằng cách chọn mạng Wi-Fi bạn muốn xóa và nhấn "-"
  4. Nhấp vào 'Áp dụng' và 'OK'
  5. Bật lại Wi-Fi.
  6. Chọn mạng Wi-Fi của bạn và đăng nhập lại.

Đây là những gì cuối cùng đã làm việc cho tôi. Có lẽ đó là điều đầu tiên tôi thử, nhưng tôi là một người Linux và tôi nhìn vào các bản sửa lỗi console trước tiên.

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.