nslookup працює з /etc/resolv.conf, ping і ssh не


12

У нашій локальній університетській мережі я (отриманий DHCP) в /etc/resolv.conf:

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

У налаштуваннях системи однакові налаштування. Виникає така проблема:

nslookup server

працює і використовує один із серверів імен, щоб правильно запитати сервер.a.domain.com. Якщо я спробую пінг пінг,

ping server

виходить з ладу з недосяжним хостом.

ping server.a.domain.com

працює. Ручне додавання сервера з ip-адресою, отриманої nslookup до / etc / hosts, також робить ping роботу, але це "рішення" обходить сервери імен, тому не є ідеальним (і мені доведеться додати ще близько 20 записів). Будь-яка ідея, що це викликає? Чому ping не використовує результати nslookup / searchdomains?

ssh server

також не вдається, що є справжньою проблемою / незручністю.

Я вже додав AlwaysUseSearchDomains до mDNSResponder, але це виправлення допомагає проблемі лише під час використання server.foo.

Я використовую OS X Lion 10.7.3.


Пакет Ping може бути заблокований мережевим обладнанням. Те ж саме і з ssh-пакетами - вони можуть не хотіти, щоб ти робив те, що робиш.
— Thorbjørn Ravn Andersen

Дивіться рішення нижче, це не було проблемою.
— tholu

"Недоступний хост" означає проблему з підключенням до мережі (або ICMP заблокований), а не проблема вирішення DNS
— Daniel Serodio

Відповіді:


2

Ну, ви читали коментарі вгорі /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.

Правильне рішення полягає в тому, щоб додати пошукові домени через панель Мережа в Налаштуваннях системи, як описано тут .


Я зробила. Пошукові домени автоматично вводяться на панель "Мережа" у налаштуваннях системи відповідно до конфігурації DHCP (і, таким чином, сіріють і не змінюються). Точно такі самі значення / конфігурація знаходяться в /etc/resolv.conf.
— Тхолу

Я не знаю, що тобі сказати. Я отримую налаштування Ethernet та WiFi через DHCP і можу змінити свої пошукові домени через панель Налаштування системи.
— Старий Про

Пошукові домени правильні в System Preferences та /etc/resolv.conf - проблема в тому, що ping і ssh не використовують його. Якби вони використовували вихід nslookup, все працювало б нормально, але якось - ні. Однак вони шукають / etc / hosts.
— Тхолу

Я вручну додав searchdomains (хоча вони були замуровані) по черзі через System Preferences, і тепер це працює. Дякую!
— Тхолу

4

У мене була така ж проблема. Я використовував рішення для створення каталогу / etc / resolutionver. Всередині цього каталогу створіть файл, названий для кожного домену, який ви хочете вирішити. Всередині кожного файлу повинно бути два рядки

nameserver 10.0.100.2
domain  home.cainmanor.com

Файл, названий вище, буде названий / etc / resolutionver / home. Можливо, її потрібно назвати home.cainmanor.com, але зараз я не можу перевірити це.

Удачі!


У мене це працює, встановивши searchdomains за допомогою системних налаштувань по черзі, переосмисливши налаштування DHCP, які OS X, очевидно, не вдалося правильно проаналізувати. Я не міг спробувати ваше рішення, але дякую!
— Тхолу

Цей підхід чудово працює, коли ваш корпоративний клієнт VPN робить неправильну справу щодо перехідних системних налаштувань.
— Пітер

1

Я вважаю, що проблема полягає в конфігурації searchdomains: ping / ssh намагаються використовувати те, gethostbyname2()що не вдається, оскільки ім'я більше не працює (принаймні у Lion), а /etc/resolv.confз налаштованими searchdomains таким чином ігнорується. /etc/hostsє останньою інстанцією для, gethostbyname2()і, отже, ssh знову працює з належними записами /etc/hosts. Має виправити Apple imho.

Ручне додавання пошукових доменів по одному виправлено, див. Рішення вище.


Коли я додаю пошуковий домен до свого WiFi-з'єднання (який налаштовано через DNS) в ОС 10.7.3 через Системні налаштування -> Мережева панель, він використовується за допомогою ping та ssh так, як я би очікував. Я не торкаюся /etc/resolv.conf або / etc / hosts вручну / безпосередньо, але зміни в System Preferences відображаються в /etc/resolv.conf автоматично. OS X робить багато речей інакше, ніж інші системи Unix, і це одна з них.
— Старий Про

1
Дякую, це спрацювало, додавши пошукові домени один за одним вручну, дивіться мій коментар до запропонованого рішення вище.
— Тхолу

Додавання пошукових доменів не вирішило проблеми ... Хтось ще отримав інше рішення?

Як ви їх додали?
— tholu

1

Цю проблему мені трапляється так часто, коли мій Mac Book Pro (ОС X версія 10.10.1) спить. Прокинься, і я не можу ssh за допомогою імені хоста машин у моїй мережі (і ping також не працює). nslookup працює чудово. Неможливо побачити відповідні повідомлення в / var / log. Просто залиште його на кілька хвилин, і тому я знову працюю .....


0

Я відповів на це десь ще, тому що це був простий виправлення для мене, і я не міг знайти відповіді, яка працювала для мене ніде більше.

Після перезапуску mDNSResolver десятки разів, як рекомендовано в інших потоках:

sudo killall -HUP mDNSResponder

Нарешті я спробував щось інше. Я відключив Wi-Fi та видалив усі мої уподобані мережі. Потім я відновив Wi-Fi-з'єднання, і все працювало нормально:

  1. Меню Apple -> Налаштування системи -> Wi-Fi (зліва)
  2. "Вимкнути Wi-Fi", а потім виберіть "Додатково"
  3. Видаліть з’єднання Wi-Fi, у якого виникають проблеми (або всі, якщо вам це потрібно). Зробіть це, вибравши мережу Wi-Fi, яку потрібно видалити, і натиснувши "-"
  4. Натисніть "Застосувати" та "ОК"
  5. Увімкніть Wi-Fi знову.
  6. Виберіть свою мережу Wi-Fi та увійдіть знову.

Це те, що нарешті спрацювало для мене. Це, мабуть, мало бути першим, що я спробував, але я хлопець Linux і спочатку переглядаю виправлення консолі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.