Avahi - Chromebook: tidak dapat menyelesaikan nama host

4

Saya memiliki pi raspberry (jessie raspbian) dengan layanan ssh & vnc yang terdaftar di avahi. Saya dapat melihat kedua layanan di klien saya (Chromebook)

chronos@localhost ~ $ avahi-browse -arl
+  mlan0 IPv4 raspberrypi SSH                               _ssh._tcp            local
+  mlan0 IPv4 raspberrypi VNC                               _rfb._tcp            local
+  mlan0 IPv4 raspberrypi [30:b5:c2:1e:2f:df]               _workstation._tcp    local
=  mlan0 IPv4 raspberrypi SSH                               _ssh._tcp            local
   hostname = [raspberrypi.local]
   address = [192.168.1.200]
   port = [22]
   txt = []
=  mlan0 IPv4 raspberrypi [30:b5:c2:1e:2f:df]               _workstation._tcp    local
   hostname = [raspberrypi.local]
   address = [192.168.1.200]
   port = [9]
   txt = []
=  mlan0 IPv4 raspberrypi VNC                               _rfb._tcp            local
   hostname = [raspberrypi.local]
   address = [192.168.1.200]
   port = [5900]
   txt = []

Dan sepertinya saya bisa menyelesaikan nama dan alamatnya:

chronos@localhost ~ $ avahi-resolve --address 192.168.1.200
192.168.1.200   raspberrypi.local
chronos@localhost ~ $ avahi-resolve --name raspberrypi.local
raspberrypi.local       192.168.1.200

Tetapi setiap kali saya mencoba untuk melakukan ping atau ssh raspberry dari chromebook saya, itu tidak akan menyelesaikan:

chronos@localhost ~ $ ping raspberrypi.local
ping: unknown host raspberrypi.local
chronos@localhost ~ $ ssh [email protected]
ssh: Could not resolve hostname raspberrypi.local: Name or service not known

Apakah saya melewatkan sesuatu? Saya sebenarnya bisa ssh Raspberry Pi saya dari klien lain (Arch Linux) di jaringan lokal saya, jadi saya kira masalahnya ada di sisi Chromebook.

Ini adalah definisi layanan yang saya gunakan di Raspberry Pi (/etc/avahi/services/ssh.service):

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
        <name replace-wildcards="yes">%h SSH</name>
        <service>
                <type>_ssh._tcp</type>
                <port>22</port>
        </service>
</service-group>
rodrunner
sumber

Jawaban:

1

Avahi mencari layanan Avahi di Internet, meminta mereka untuk (dalam contoh Anda) menunjukkan resolusi IP.

Penggunaan alamat IP pada chromebook Anda akan mendapatkan hasil yang Anda cari (balas ping atau akses ssh).

Sebagian besar jaringan tidak menyimpan nama mesin, hanya IP. Anda dapat memberikan pencarian nama domain Anda sendiri (untuk alamat ip statis) di /etc/hosts(Chromebook harus dalam mode pengembang) dengan menambahkan baris: raspberrypi.local 192.168.1.200

Atau dengan mengotomatiskannya dalam skrip, gunakan seduntuk mengganti baris yang dimulai dengan raspberrypi.local, dengan output dari perintah avahi-resolve --name raspberrypi.local. Itu akan bekerja untuk alokasi IP dinamis, tetapi Anda masih harus menjalankan skrip setidaknya sekali setiap kali RPi dinyalakan (jika berubah).

Alasan Anda tidak mendapatkan hasil (yang Anda harapkan) adalah karena layanan nama domain (atau server DNS) tidak tahu tentang nama alamat LAN.


Berikut ini juga akan berfungsi:

ping `avahi-resolve --name raspberrypi.local`
ssh `avahi-resolve --name raspberrypi.local`

`ada pada kunci tilda (~)

Paul Wratt
sumber
Terima kasih atas solusinya. Perhatikan bahwa layanan nama domain dapat dikonfigurasi untuk melakukan pencarian ini, dan itu biasanya bagaimana misalnya Ubuntu dikonfigurasi ketika avahi diinstal, seperti yang dijelaskan dalam jawaban saya.
nealmcb
0

Cara normal untuk mendukung *.localpencarian nama avahi sehingga hanya berfungsi ping raspberrypi.localadalah melalui misalnya mdns4_minimaldalam /etc/nsswitch.confseperti yang dijelaskan di Cara mengkonfigurasi pencarian DNS lokal di Ubuntu 16.10? - Tanyakan Ubuntu

Tampaknya ini dimungkinkan di Chrome OS setelah bug ini diperbaiki: 199397 - FR: resolusi nama mDNS - chromium - Monorail , tapi itu mengalami masalah pada beberapa jaringan yang menggunakan .localdomain non-mdns mereka sendiri , seperti dijelaskan pada 626377 - Aktifkan resolusi nama host mDNS tanpa melanggar .local unicast DNS - chromium - Monorail .

Pada awal 2018, tampaknya bahwa masalah 626377 sudah mendekati rilis untuk mengaktifkan kembali pencarian mdns.

Sementara itu saya kira ini bisa diperbaiki secara lokal jika Anda masuk ke mode pengembang dan mengubah partisi rootfs Anda. Dan sampai saat itu, jawaban Paul Wratt memiliki beberapa solusi yang membantu.

nealmcb
sumber