Einrichten eines auflösbaren lokalen Webhostnamens?

0

Ich habe eine Situation wie diese:

raspi3-netw-02

Der Raspberry Pi 3 ist als WLAN-Zugangspunkt (gemäß https://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-hostapd/ ) und a eingerichtet Webserver. Ich möchte ihm beispielsweise einen Hostnamen geben myrpi, der von jedem Client im lokalen Netzwerk auflösbar ist - unabhängig davon, ob sie verkabelt oder kabellos verbunden sind -, so dass ich bei der Eingabe der Webadresse http://myrpiin einen beliebigen Browser (Firefox, Chrome) ein Auf jedem lokalen PC (Windows, Ubuntu) würde ich die Webseite an Port 80 des Raspberry Pi anzeigen lassen - ohne Änderungen an den Web-Client-Computern vorzunehmen (das sind die Windows- und Ubuntu-PCs auf dem Image, wenn das RPi ein Webserver ist )

Ich habe zuerst folgendes gefunden:

Also ging ich mit. Jetzt habe ich auf dem RPi:

  • In /etc/hosts->127.0.1.1 myrpi
  • In /etc/hostname->myrpi

Dann habe ich sudo apt-get install avahi-daemonauf dem RPi und neu gestartet.

Ich versuche dann über die Kommandozeile auf dem Ubuntu-PC (verbunden mit dem RPi als WiFi-Client):

$ 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>
...

Das sieht also soweit gut aus - ABER wenn ich http://myrpi.local/als Webadresse entweder Firefox oder Chromium auf einem Ubuntu-PC eingebe, bekomme ich "Server nicht gefunden".

Dies könnte etwas mit dem Zustand von Avahi auf Ubuntu zu tun haben:

[Gelöst] Kann nicht auf Server in der lokalen Domäne im Unternehmens-LAN zugreifen

Diese funktionieren nicht in Ubuntu. Dies liegt daran, dass Ubuntu standardmäßig das mDNS-System von AVAHI Zeroconf installiert, es so konfiguriert, dass es die .local-Domäne "besitzt" und es in der Reihenfolge der Auflösung des Hostnamens vor dem regulären DNS priorisiert.

Also, dachte ich, es ist mir eigentlich egal, .localob ich etwas an den Domainnamen angehängt habe - ich dachte nur, so sollen die Dinge gemacht werden. Also habe ich versucht, den Hostnamen direkt vom Ubuntu-PC 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 wgetfunktioniert es nicht einmal (und myrpinatürlich auch nicht mit Firefox- oder Chromium-Browsern), obwohl klar ist, warum - hier in 127.0.1.1 aufgelöst, was /etc/hostswörtlich in RPi geschrieben wird - auf dem Ubuntu-Laptop einmal dieselbe Adresse bedeutet " "Dieser Laptop" ist ein Loopback-Laptop, und da auf dem Ubuntu-Laptop kein Webserver ausgeführt wird, schlägt der gesamte Vorgang fehl.

Nun - hier ist das Komische: in dieser Konfiguration der Windows - PC (ich glaube , Windows 7), myrpi.localbeschließt, 192.168.0.51- und die Webseite von http://myrpi.local/funktioniert in Firefox und Chrome unter Windows ?!

/etc/nsswitch.confAbschließend habe ich versucht, das RPi zu ändern:

# hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4 # original
hosts:          files dns mdns4 mdns4_minimal

... und neu starten - die Browser auf Ubuntu können jedoch weiterhin nicht auf http://myrpi/oder zugreifen http://myrpi.local/. Mein /etc/resolv.confauf dem RPi ist noch unverändert.

Wie kann ich .localdem Raspberry Pi einen Namen geben ( oder nicht), der im lokalen Netzwerk auflösbar ist, damit jeder andere PC im selben lokalen Netzwerk den Webserver-Inhalt vom Raspberry Pi abrufen kann, unabhängig von Betriebssystem und Browser auf diesem PC?

sdbbs
quelle
1
Die einfachste Lösung ist, den Ubuntu / Windows-PC als DNS-Server für das gesamte Netzwerk zu konfigurieren. Auf diese Weise können Sie Hostnamen für das Netzwerk definieren und auf eine beliebige IP-Adresse verweisen.
Ramhound
Vielen Dank an @Ramhound - aber dieses RPi wird möglicherweise nicht in demselben lokalen Netzwerk verwendet wie das in der Frage beschriebene. Ich benötige daher eine allgemeinere Lösung - falls es eine solche gibt ...
sdbbs
1
In diesem Fall müssen Sie die Hosts-Datei selbst bearbeiten und für jeden Client einen Eintrag hinzufügen. Dies bedeutet, dass Ihre Clients und Server über eine statische Intranet-IP-Adresse verfügen müssen. Jedes Mal, wenn Sie dem Netzwerk einen Client hinzufügen, müssen Sie die Datei aktualisieren. Wenn sich das RPi nicht im Netzwerk befindet, können die Clients im Netzwerk sowieso nicht mit dem RPi kommunizieren.
Ramhound
2
Alles das oben Genannte. Wenn Sie keinen zentralen DNS-Server verwenden können, auf dem Sie Computer hinzufügen / entfernen, müssen Sie die Hostnamen für jeden Computer auf jedem Client (oder zumindest für die DHCP-Server) hinzufügen / entfernen.
Ramhound
1
Was ein bisschen seltsam ist, ist, dass Sie nur die RPi-Hosts-Datei geändert haben, diese Änderung jedoch auf dem Ubuntu-Rechner sehen. Ich gehe davon aus, dass Ihre mDNS-Installation auf Ihrem Ubuntu-Computer nicht ordnungsgemäß gehandhabt wird, aber Windows versteht, wie man damit arbeitet. Wenn Sie wirklich möchten, dass dies für alle Computer ohne spezielle Konfiguration funktioniert, müssen Sie wahrscheinlich einen voll ausgestatteten DNS-Server auf dem Pi einrichten und Ihren Router als zu verwendenden DNS-Server ankündigen lassen.
Seth