MacBook không thể sử dụng internet, nhưng nslookup và ping đều hoạt động


12

Tôi có một người dùng với MacBook Pro cao cấp mới không thể sử dụng internet. Anh ta có thể kết nối với mạng có dây hoặc không dây của chúng tôi và thực hiện những việc như duyệt chia sẻ tệp, nhưng không thể nhận được nữa.

Khi tôi mang máy vào để thử nghiệm, tôi thấy rằng tôi có thể thực hiện một nslookup tốt và tôi có thể ping địa chỉ được trả lại bởi nslookup. Tôi thậm chí có thể hiển thị các trang web bằng cách nhập địa chỉ IP trực tiếp vào thanh địa chỉ. Tuy nhiên, khi tôi cố gắng ping tên miền chứ không phải địa chỉ IP, nó chỉ nằm ở đó. Vì vậy, rõ ràng tôi có thể thực hiện phân giải tên hoặc liên lạc với một địa chỉ, nhưng không phải cả hai cùng một lúc.

Một lần nữa, những triệu chứng này xảy ra trên cả mạng có dây và không dây. Các máy khác trên mạng của chúng tôi, bao gồm một số máy Mac khác, không gặp phải vấn đề này.

Có ý kiến ​​gì không?

Câu trả lời:


8

Đang mDNSResponderchạy à? Ngay cả nếu có, hãy thử thực hiện sudo killall mDNSRespondervà để launchdtự động khởi chạy lại. (Nếu bạn đã thử khởi động lại hệ thống và vấn đề vẫn còn, thì đây có lẽ không phải là nguyên nhân.)

mDNSResponder là một phần quan trọng của cơ sở hạ tầng trình phân giải DNS của Mac OS X hiện nay. Một số công cụ như nslookupchứa mã trình phân giải DNS của riêng họ hoặc gọi API cấp thấp tránh mDNSResponder và sử dụng thư viện trình phân giải DNS Unix truyền thống hơn, nhưng hầu hết các ứng dụng và công cụ chỉ gọi API thông thường sẽ dựa vào mDNSResponder để thực hiện phân giải tên.

Bạn cũng có thể muốn kiểm tra xem bạn đã cấu hình DNS như thế nào trong bảng Mạng của Tùy chọn hệ thống và xem /etc/resolv.conf(lưu ý: không có 'e' trong "độ phân giải"). ipconfig getpacket en0(thay thế en0 bằng mã định danh lớp BSD của giao diện mạng chính của bạn) có thể hữu ích để xem thông tin máy chủ DNS nào mà máy của bạn nhận được từ DHCP. Xem thêm phần "ĐĂNG NHẬP" của mDNSResponder(8)trang hướng dẫn để biết thêm mẹo nhận thông tin khắc phục sự cố / gỡ lỗi từ mDNSResponder.


Điều này đã tồn tại qua một số lần khởi động lại, nhưng thực tế là nslookup trả về một địa chỉ trong khi bất kỳ điều gì khác cần giải quyết vẫn không cho thấy mDNSResponder là một ứng cử viên tốt cho vấn đề.
Joel Coehoorn

Tuyệt vời những gì khác biệt kinh nghiệm của một năm làm cho. Tôi đến xem lại điều này ngày hôm nay bởi vì ai đó đã bỏ phiếu cho câu hỏi và hầu hết câu trả lời của bạn bây giờ là bản chất thứ 2 đối với tôi, nơi mà trước khi tôi bị mù. Điều đó nói rằng, tôi đã nói điều này trước đây, nhưng mDNS / Bonjour là một đống hấp tuyệt vời mà Apple không bao giờ nên tung vào thiết bị sản xuất.
Joel Coehoorn

Ồ, và học sinh cuối cùng đã giải quyết điều này trước khi chúng tôi có máy quay lại để thử điều này, nhưng đọc các triệu chứng và gợi ý bây giờ, tôi chắc chắn đây là vấn đề, và có thể cần cài đặt lại dịch vụ Bonjour.
Joel Coehoorn

@Joel Cảm ơn đã theo dõi. Thật tuyệt khi nghe câu trả lời hữu ích.
Spiff

2

Tôi thấy rằng nguyên nhân sâu xa của vấn đề này trên nhiều máy Mac của tôi (tốt, Hackffyes) là do ngủ / treo vào đĩa. Nếu điều này không thành công, trong lần khởi động tiếp theo, mDNSResponder ở trạng thái bị hỏng và sudo killall mDNSResponderlệnh sẽ sửa nó.


1

Có lẽ bạn đã chỉ định thủ công các máy chủ DNS trong cài đặt Mac của mình? Vui lòng kiểm tra cài đặt của bạn vì nó được hiển thị ở đây , xóa bất kỳ máy chủ DNS nào bạn có thể có, thay thế bằng IP điểm truy cập của bạn (hoặc thậm chí chỉ để trống, DNS nên được đặt qua DHCP).


DNS được đặt qua dhcp và hiển thị đúng máy chủ dns.
Joel Coehoorn

1

Vì lệnh quan trọng nhưng không được chú ý này thay đổi một cách điên cuồng trong các phiên bản khác nhau của MacOS, tôi sao chép và dán bên dưới danh sách tham chiếu siêu hữu ích từ

"HƯỚNG DẪN TUYỆT VỜI TRÊN CÂY" của Neil Gee https://coolestguidesontheplanet.com/clear-the-local-dns-cache-in-osx/

Cách xóa bộ đệm DNS cục bộ (khi URL không giải quyết theo cách bạn muốn)

sudo killall -HUP mDNSResponder (OSX 10.10.4, 10.11.0, macOS Sierra 10.12.0)

sudo discoveryutil mdnsflushcache (OSX 10.10.0 - 10.10.3)

sudo killall -HUP mDNSResponder (OSX 10.9,10.8,10.7)

sudo dscacheutil -flushcache (OSX 10.5,10.6)

và cũng bao gồm Windows và Linux


0

Tôi thực sự vật lộn với điều này và thử tất cả các bước. những gì làm việc cho tôi là đi vào các tùy chọn mạng và xóa cả ethernet và bộ điều hợp sân bay sau đó thêm lại chúng

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.