Apa yang dilakukan “.local”?

26

Saya punya beberapa mesin Ubuntu di jaringan saya di rumah, tetapi DNS disediakan oleh server windows (2K). Ketika saya ssh ke mereka dari yang lain, jika saya ssh kepada mereka sebagai "mesin" saya tidak dapat terhubung, tetapi jika saya terhubung sebagai "machine.local" saya dapat terhubung.

Saya pikir sama, saya tidak dapat terhubung dari klien windows (seperti dempul).

Apa yang terjadi di sini? - ini jelas hal Ubuntu.

Marc
sumber
Sebenarnya, ini terlihat seperti DNS, bukan seperti Ubuntu sama sekali (terutama karena Anda “tidak dapat terhubung” dari mesin Windows - dan apa pesan kesalahannya?). Apa konfigurasi DNS Anda ( nameserver dan search )? Bagaimana dig machine1perbedaannya dig machine1.local?
Gilles 'SO- stop being evil'
Apakah Anda memiliki Apple Bonjour atau implementasi Zeroconf lain yang diinstal pada Windows 2000 Server?
Thorbjørn Ravn Andersen

Jawaban:

34

Secara default, Ubuntu menyertakan avahi. Ini adalah implementasi dari zeroconf yang memungkinkan nama host komputer diatasi dengan nama virtual ".local". Setiap kali komputer Anda mencoba terhubung ke "hostname.local", avahi akan melakukan siaran jaringan lokal untuk melihat apakah ada komputer dengan nama host itu. Komputer lain yang menjalankan avahi (atau sesuatu yang kompatibel) harus menjawab.

Jika Anda mencari di /etc/nsswitch.conf, Anda akan menemukan baris berikut:

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

Mdns4_minimal adalah pengaturan konfigurasi yang membuat pengalihan ini berfungsi.

Pertanyaan Anda sebenarnya menunjukkan bahwa avahi berjalan dengan sukses saat Anda mengatakan bahwa Anda dapat terhubung ke komputer Ubuntu Anda menggunakan "hostname.local". Namun, Anda tidak memperjelas ("Ketika saya ssh ke mereka dari yang lain, ...") jika Anda mencoba untuk terhubung dari komputer Ubuntu lain, atau dari komputer Windows lain. Tanpa menginstal perangkat lunak lain seperti Bonjour, komputer Windows tidak dapat menyelesaikan nama "hostname.local" gaya-zeroconf.

Lekensteyn
sumber
Avahi Link untuk yang berminat. Singkatnya, ini rumit.
meawoppl
13

Untuk memperbaiki masalah Anda, Anda hanya perlu Avahi. Ini mengumumkan nama mesin Ubuntu Anda ke lot Windows.

sudo apt-get install avahi-daemon

machinename.localbekerja berkat implementasi zeroconf (yang juga Avahi) bernama Bonjour, dibuat (IIRC) oleh Apple. Ini diinstal secara default. Saya tidak tahu mengapa Avahi tidak juga tetapi mengingat kebingungan yang menyebabkan orang, mungkin memang begitu.

Ada lebih banyak tentang ini di Wikipedia: http://en.wikipedia.org/wiki/.local

Oli
sumber
Avahi menggunakan .lan saya pikir
Broam
7
Tidak, avahi menggunakan .local, ini diperlukan oleh spec mDNS.
Kees Cook