Что делает «.local»?

26

У меня дома есть несколько компьютеров с Ubuntu, но DNS предоставляется сервером Windows (2K). Когда я ssh к ним из другого, если я ssh к ним как «машина», я не могу подключиться, но если я подключаюсь как «machine.local», я могу подключиться.

Я думаю, аналогично, я не могу подключиться из Windows-клиента (например, замазка).

Что тут происходит? - это явно вещь Ubuntu.

Марк
источник
На самом деле, это похоже на DNS, а не на Ubuntu (тем более, что вы «не можете подключиться» с компьютера с Windows - и что такое сообщение об ошибке в любом случае?). Какова ваша конфигурация DNS ( nameserver и search )? Чем dig machine1отличается от dig machine1.local?
Жиль "ТАК - перестань быть злым"
Может быть, вы установили Apple Bonjour или другую реализацию Zeroconf на Windows 2000 Server?
Турбьерн Равн Андерсен

Ответы:

34

По умолчанию в Ubuntu есть avahi. Это реализация zeroconf, которая позволяет разрешать имена компьютеров с помощью виртуального имени «.local». Всякий раз, когда ваш компьютер пытается подключиться к «hostname.local», avahi будет выполнять широковещательные рассылки по локальной сети, чтобы увидеть, есть ли компьютеры с таким именем хоста. Другие компьютеры под управлением avahi (или что-то совместимое) должны ответить.

Если вы посмотрите в /etc/nsswitch.conf, вы найдете следующую строку:

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

Mdns4_minimal - это параметр конфигурации, который делает это перенаправление работоспособным.

Ваш вопрос на самом деле говорит о том, что avahi успешно работает, поскольку вы говорите, что можете подключиться к компьютерам Ubuntu с помощью «hostname.local». Тем не менее, вы не даете понять («Когда я ssh к ним с другого, ...»), если вы пытаетесь подключиться с другого компьютера Ubuntu или с другого компьютера Windows. Без установки другого программного обеспечения, такого как Bonjour, компьютеры Windows не могут разрешать имена в стиле «hostname.local» в стиле zeroconf.

Lekensteyn
источник
Авахи Ссылка для заинтересованных. Короче, это сложно.
Meawoppl
13

Чтобы решить вашу проблему, вам просто нужно Avahi. Это объявляет имена ваших компьютеров с Ubuntu для Windows.

sudo apt-get install avahi-daemon

machinename.localработает благодаря другой реализации zeroconf (из которой также Avahi), называемой Bonjour, созданной (IIRC) Apple. Он установлен по умолчанию. Я не знаю, почему Avahi также не, но учитывая путаницу, это вызывает людей, это, вероятно, должно быть.

Об этом в Википедии есть больше: http://en.wikipedia.org/wiki/.local

Оли
источник
Авахи использует .lan Я думаю
Broam
7
Нет, avahi использует .local, это требуется спецификацией mDNS.
Кис Кук