У меня есть два сервера, и один, кажется, настроил что-то «из коробки», чтобы «ssh servername.local» работал. Мне это очень нравится, я разобрался, но не вижу разницы в их конфигурации.
server1: (ssh по имени работает)
$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 server1
server2: (ssh по имени не работает)
$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 server2
server1.local подключается нормально, server2.local получает ответ:
ssh: Could not resolve hostname server2.local: Name or service not known
Я ничего не сделал для настройки DNS, и файлы revolv.conf на обоих серверах одинаковы.
server2 работает под управлением ubuntu server 9.04 32-bit (jaunty), а server1 работает под управлением ubuntu рабочий стол 9.10 64-битный (кармический).
Может ли кто-нибудь сказать мне, где я должен искать, чтобы увидеть, что отличается, и почему это работает на одном, а не на другом?
Avahi должен быть запущен на обеих машинах. Это демон, предоставляющий услуги mDNS.
root @ rilindo-desktop: ~ # ps -ef | grep avahi avahi 903 1 0 01.01? 00:00:05 avahi-daemon: регистрация [rilindo-desktop.local] avahi 904 903 0 01.01? 00:00:00 avahi-daemon: chroot helper root 18206 15276 0 11:23 pts / 2 00:00:00 grep avahi
Предполагая, что порт 5353 не фильтруется / не блокируется на машинах, вам необходимо проверить конфигурацию avahi.
Также проверьте строку «поиск» в /etc/resolv.conf
Не могли бы вы проверить /etc/nsswitch.conf на обеих машинах и на хостах: установка? Они оба одинаковые?
Чтобы не полагаться на случайное соглашение об именах, нельзя ли установить статические IP-адреса на серверах, а затем добавить их соответствующие записи в файл хостов других машин? например
на server1
192.168.1.200 server2
на server2
192.168.1.100 server1
Хотя avahi и другие инструменты zeroconf полезны, на них не всегда стоит полагаться.