Mam w domu kilka maszyn Ubuntu w mojej sieci, ale DNS zapewnia serwer Windows (2K). Kiedy ssh do nich z innego, jeśli ssh do nich jako „machine” nie mogę się połączyć, ale jeśli połączę się jako „machine.local”, mogę się połączyć.
Myślę, że podobnie, nie mogę połączyć się z klienta Windows (jak kit).
Co tu się dzieje? - to wyraźnie kwestia Ubuntu.
networking
dns
hostname
Marc
źródło
źródło
nameserver
isearch
)? Czym siędig machine1
różnidig machine1.local
?Odpowiedzi:
Domyślnie Ubuntu zawiera avahi. Jest to implementacja zeroconf, która pozwala na rozwiązywanie nazw komputerów za pomocą wirtualnej nazwy „.local”. Za każdym razem, gdy komputer próbuje połączyć się z „hostname.local”, avahi przeprowadzi transmisje w sieci lokalnej, aby sprawdzić, czy istnieją komputery z tą nazwą hosta. Inne komputery z avahi (lub czymś kompatybilnym) powinny odpowiedzieć.
Jeśli zajrzysz do /etc/nsswitch.conf, znajdziesz następujący wiersz:
Mdns4_minimal to ustawienie konfiguracyjne, które powoduje, że przekierowanie działa.
Twoje pytanie faktycznie sugeruje, że avahi działa poprawnie, gdy mówisz, że możesz połączyć się ze swoimi komputerami Ubuntu za pomocą „hostname.local”. Jednak nie wyjaśniasz („Gdy przesyłam do nich ssh z innego, ...”), jeśli próbujesz połączyć się z innego komputera Ubuntu lub z innego komputera z systemem Windows. Bez instalowania innego oprogramowania, takiego jak Bonjour, komputery z systemem Windows nie mogą rozpoznać nazw „hostname.local” w stylu zeroconf.
źródło
Aby rozwiązać problem, wystarczy Avahi. To ogłasza nazwy twoich maszyn Ubuntu na działce Windows.
machinename.local
działa dzięki kolejnej implementacji zeroconf (której jest również Avahi) o nazwie Bonjour, utworzonej przez Apple (IIRC). Jest instalowany domyślnie. Nie wiem, dlaczego Avahi też nie jest, ale biorąc pod uwagę zamieszanie, które powoduje ludzi, prawdopodobnie tak powinno być.Więcej na ten temat na Wikipedii: http://en.wikipedia.org/wiki/.local
źródło
.local
, jest to wymagane przez specyfikację mDNS.