
Ich habe eine Situation wie diese:
Der Raspberry Pi 3 ist als WiFi-Zugangspunkt eingerichtet (gemäßhttps://frillip.com/Ihren-Raspberry-Pi-3-als-WLAN-Zugangspunkt-mit-hostapd-verwenden/) und einen Webserver. Ich möchte ihm einen Hostnamen geben, sagen wir myrpi
, der im lokalen Netzwerk von jedem Client aus auflösbar ist – unabhängig davon, ob er kabelgebunden oder drahtlos verbunden ist –, sodass, wenn ich die Webadresse http://myrpi
in einen beliebigen Browser (Firefox, Chrome) auf einem beliebigen lokalen PC (Windows, Ubuntu) eingebe, die Webseite auf Port 80 des Raspberry Pi bereitgestellt wird – ohne irgendetwas auf den Web-Client-Computern zu ändern (das sind die Windows- und Ubuntu-PCs auf dem Image, wenn der RPi ein Webserver ist).
Ich habe zuerst das hier gefunden:
- http://www.howtogeek.com/167190/wie-und-warum-weisen-Sie-die-.local-domain-Ihrem-raspberry-pi-zu-ordnen/
- http://www.howtogeek.com/167195/how-to-change-your-raspberry-pi-or-other-linux-devices-hostname/
Also habe ich es durchgearbeitet. Jetzt habe ich auf dem RPi:
- In
/etc/hosts
->127.0.1.1 myrpi
- In
/etc/hostname
->myrpi
Dann habe ich es sudo apt-get install avahi-daemon
auf dem RPi gemacht und neu gestartet.
Ich versuche dann über die Befehlszeile auf dem Ubuntu-PC (der als WLAN-Client mit dem RPi verbunden ist):
$ ping myrpi.local
PING myrpi.local (172.24.1.1) 56(84) bytes of data.
64 bytes from 172.24.1.1: icmp_seq=1 ttl=64 time=1.54 ms
...
$ wget -O- myrpi.local
Resolving myrpi.local (myrpi.local)... 172.24.1.1
Connecting to myrpi.local (myrpi.local)|172.24.1.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
...
<p>This is the default web page for this server.</p>
...
Also, das sieht bisher gut aus – ABER wenn ich es http://myrpi.local/
als Webadresse in Firefox oder Chromium auf einem Ubuntu-PC eingebe, erhalte ich die Meldung „Server nicht gefunden“.
Dies könnte etwas mit dem Status von Avahi unter Ubuntu zu tun haben:
[GELÖST] Kein Zugriff auf Server in der .local-Domäne im Firmen-LAN möglich
diese funktionieren in Ubuntu nicht. Das liegt daran, dass Ubuntu standardmäßig das AVAHI Zeroconf mDNS-System installiert, es so konfiguriert, dass es die .local-Domäne „besitzt“, und es in der Reihenfolge der Hostnamenauflösung vor dem regulären DNS priorisiert.
- 173804 – [rfe]Unterstützung für Bonjour (Rendezvous/zeroconfig) zum Browser hinzufügen
- https://stackoverflow.com/questions/29637622/resolve-mdns-local-url-in-browser-address-bar
- Die PC-Version von Google Chrome erkennt den Domänennamen „.local“ nicht
Ich dachte, dass es mir eigentlich egal ist, ob ich .local
den Domänennamen anhänge - ich dachte einfach, dass das so gemacht werden soll. Also versuchte ich, den Hostnamen direkt vom Ubuntu-PC aus aufzurufen:
$ ping myrpi
PING myrpi (127.0.1.1) 56(84) bytes of data.
64 bytes from myUbuntuLaptop (127.0.1.1): icmp_seq=1 ttl=64 time=0.022 ms
...
$ wget -O- http://myrpi/
--2017-01-26 13:38:56-- http://myrpi/
Resolving myrpi (myrpi)... 127.0.1.1
Connecting to myrpi (myrpi)|127.0.1.1|:80... failed: Connection refused.
Hier funktioniert es nicht einmal wget
(und offensichtlich auch nicht die Browser Firefox oder Chromium), obwohl klar ist, warum – hier myrpi
wird es auf 127.0.1.1 aufgelöst, was wörtlich in RPi steht /etc/hosts
– aber auf dem Ubuntu-Laptop bedeutet dieselbe Adresse „dieser Laptop“, da es sich um einen Loopback handelt und da ich keinen Webserver auf dem Ubuntu-Laptop laufen habe, schlägt der gesamte Vorgang fehl.
Jetzt kommt das Komische: In dieser Konfiguration wird der Windows-PC (ich glaube, Windows 7) myrpi.local
aufgelöst zu 192.168.0.51
– und die Webseite http://myrpi.local/
funktioniert sowohl in Firefox als auch in Chrome unter Windows einwandfrei?!
Als letzte Maßnahme habe ich versucht, Folgendes /etc/nsswitch.conf
am RPi zu ändern:
# hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 # original
hosts: files dns mdns4 mdns4_minimal
... und Neustart – die Browser unter Ubuntu können jedoch immer noch nicht auf http://myrpi/
oder zugreifen http://myrpi.local/
. Meins /etc/resolv.conf
auf dem RPi ist immer noch unverändert.
Wie kann ich dem Raspberry Pi also einen im lokalen Netzwerk auflösbaren Namen geben ( .local
oder nicht), sodass jeder andere PC im selben lokalen Netzwerk die Webserverinhalte vom Raspberry Pi abrufen kann, unabhängig von Betriebssystem und Browser, die auf diesem PC laufen?