Назад | Перейти на главную страницу

SSH не работает, хост не найден, но NSLookup находит этот хост

У меня есть сеть малого бизнеса с несколькими серверами. Чтобы упростить задачу, я добавил на один из них DNS-сервер BIND9 с записями для каждой из локальных машин, например vpn.example.com, web.example.com, storage.example.com и т. Д. Эти записи обслуживаются только в локальной сети. Когда я выполняю nslookup, скажем, на vpn.example.com, я всегда получаю ожидаемый действительный ответ. Однако чаще всего попытка подключения к этому серверу по SSH терпит неудачу, например:

# nslookup vpn.example.com
Server: 192.168.1.13
Address: 192.168.1.13#53

Non-authoritative answer:
Name: vpn.example.com
Address: 192.168.1.14

# ssh user@vpn.example.com
(after a ~10 second pause)
ssh: Could not resolve hostname vpn.example.com: Name or service not known

# ssh user@192.168.1.14
[Connects immediately]

Веб-запросы к vpn.example.com проходят успешно, как и соединения из других приложений.

Это происходит периодически и, похоже, связано с перезапусками сети или сервера. Через день или два проблема, похоже, исчезнет, ​​по-видимому, когда клиентский кеш наконец выяснит (?). Я вижу это на своих компьютерах Mac и Windows. Какие-либо предложения?

Поскольку вы анонимизировали доменное имя, вы скрыли важную информацию. Заканчивается ли доменное имя службы, к которой вы подключены, на .local?

Nslookup отправляет запросы напрямую на DNS-серверы. SSH обращается к системе с просьбой разрешить имя, которое может использовать DNS, но может также использовать файл hosts, многоадресный DNS (bonjour) или другие протоколы разрешения имен. Так что, скорее всего, один из ваших других настроенных методов разрешения имен не работает.

Посмотрите строку hosts в вашем /etc/nsswitch.conf для настроенных служб разрешения имен.