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.