Wie kann ich eine "lokale" Domain einrichten, damit jeder in meinem lokalen Netzwerk eine lokal gehostete Site anzeigen kann?

16

Ich möchte MediaWiki auf einem meiner Heimcomputer einrichten und dann alle Anfragen im lokalen Netzwerk nach "wiki.home" oder "wiki.local" auf dieses Feld verweisen lassen. Ich weiß, dass dies durch Bearbeiten jeder / etc / hosts-Datei einzeln geschehen kann, aber ich möchte etwas Automatischeres, damit zum Beispiel ein Freund oder ein Familienmitglied, das zu mir nach Hause kommt, nicht mit dem herumspielen muss Hosts-Datei, um die Website anzuzeigen.

Gibt es eine einfache Möglichkeit, dies zu tun? Ich habe das Wiki eingerichtet und habe mich mit dnsmasq befasst, aber ich kann nicht herausfinden, wie das DNS richtig eingerichtet wird. Da ich eine automatisierte Lösung haben möchte, muss ich die DNS-Einstellungen meines Routers ändern. Wie kann ich externe Hosts trotzdem auflösen, wenn ich dort die DNS-Einstellungen ändere?

Konfigurationsdetails

  • Router: Netgear WNR2000v2. Der Router bietet mir die Möglichkeit, DNS-Server manuell anzugeben. Ich gehe davon aus, dass ich auf meine Ubuntu-Box verweisen muss, wenn ich diese zum Laufen bringen möchte.

  • MediaWiki und dnsmasq Host: Läuft Ubuntu 12.04. Ich hatte einige Probleme mit der dnsmasq-Konfiguration (hauptsächlich aufgrund meiner Unerfahrenheit). Ich bin mir zum Beispiel nicht sicher, aber ich denke, Ubuntu hat während der Installation meine DNS-Einstellungen so geändert, dass sie /etc/resolv.confjetzt 127.0.0.1als einziger DNS-Server verfügbar sind. Zu diesem Zeitpunkt konnte ich die lokalen Hosts auflösen, aber sonst nichts. Ich habe dieses Problem vorübergehend gelöst, indem /etc/resolv.confich 192.168.1.1den sekundären Nameserver geändert und hinzugefügt habe , aber hier geht es darum, dass 192.168.1.1die Ubuntu-Box für DNS verwendet wird. Vermisse ich hier etwas Offensichtliches?

  • dnsmasq settings: Folgende Zeilen wurden nicht kommentiert:

    domain-needed
    bogus-priv
    local=/local/
    domain=local
    
Dan
quelle
Überlegen Sie, ob Sie Ihre Konfigurationsdetails veröffentlichen möchten. Und was hast du versucht? Welche Einstellungen haben Sie an Ihrem Router vorgenommen? Was für einen Router hast du? Ich gehe davon aus, dass Sie Linux verwenden, aber welche Distribution? Es gibt so viele Dinge, die schief gehen könnten, dass wir ein Buch zu diesem Thema schreiben könnten;)
jmort253
dnsmasq wird funktionieren, aber andere Alternativen umfassen mDNS und NIS .
Majestätsbeleidigung
Kannst du einfach den Namen deines Rechners im WLAN ändern?
Ytpillai

Antworten:

8

Mit Standard-DNS würden Sie einen DNS-Server ausführen, der für die lokale Domäne autorisierend ist ( home.oder local., obwohl es besser ist, letzteres zu vermeiden - siehe Hinweis unten), der jedoch auch als Auflöser für alle anderen Domänen fungiert.

dnsmasq kann für diesen Zweck verwendet werden - der rekursive Modus ist standardmäßig aktiviert und Ihre Konfiguration sieht gut aus. Sie müssen lediglich angeben, welche Nameserver für nicht lokale Domänen verwendet werden sollen. Normalerweise werden diese aus der Systemdatei gelesen /etc/resolv.conf. aber da Sie die lokale Domäne Arbeit auf dem DNS - Server - Computer zu wollen, müssen Sie eine eigene Kopie erstellen resolv.conf , die nur verwendet werden würde dnsmasq , während die ursprüngliche resolv.conf Punkt würde nameserver 127.0.0.1.

# cp /etc/resolv.conf /etc/dnsmasq-resolv.conf
# echo "nameserver 127.0.0.1" > /etc/resolv.conf
# dnsmasq -r /etc/dnsmasq-resolv.conf

Hinweis: Diese Anweisungen sind sehr einfach und sollten an die verwendete Linux-Distribution angepasst werden. Überprüfen Sie insbesondere die Debian- und Ubuntu- Handbücher auf dnsmasq.

Danach muss der Router so konfiguriert werden, dass er diesen Computer als DNS-Server verwendet. Alle DNS-Abfragen von Computern in Ihrem Netzwerk würden dann von dnsmasq verarbeitet .

(DNS-Server mit vollem Funktionsumfang wie bind9 können rekursive Abfragen selbst durchführen. Die Konfiguration von Upstream-Nameservern ist dann völlig optional. So funktionieren beispielsweise die Nameserver Ihres Internetdienstanbieters . Das Hosten Ihrer eigenen Domain mit bind9 ist jedoch zunächst recht kompliziert.) Vergleich mit dem einfachen dnsmasq .)


Hinweis: Wenn Sie Avahi (auch bekannt als Bonjour) auf einem Computer im Netzwerk konfiguriert haben (das standardmäßig von Ubuntu verwendet wird), vermeidenlocal. Sie am besten DNS und wählen Sie home.stattdessen etwas wie , da Namen in Form von name.localbereits von Avahi verarbeitet werden .

(Obwohl Avahi normalerweise nur antwortet, current-hostname.localist es tatsächlich möglich, zusätzliche Einträge zu veröffentlichen, wie z. wiki.localB.: Aufgrund der Funktionsweise von mDNS müssen jedoch zusätzliche IP-Adressen hinzugefügt werden. Aus diesem Grund ist es nicht möglich, Avahi anstelle von zentralem DNS zu verwenden bieten keine weiteren Vorteile, also schlage ich es nicht vor.)

user1686
quelle
2

Ich fand, dass der Avahi-Dämon der einfachste Weg ist, dies zu tun. Hinweis: Wenn Sie mit Windows-Computern eine Verbindung zur lokalen Domäne herstellen, müssen Sie sicherstellen, dass auf diesen Computern iTunes oder ein anderer Bonjour-Client installiert ist.

Weitere Informationen finden Sie unter diesem Link: http://www.howtogeek.com/167190/how-and-why-to-assign-the-local-domain-to-your-raspberry-pi/

Obwohl dieser Link spezifisch für den Raspberry Pi ist, sollte er auf Ubuntu-Rechnern genauso funktionieren. Für andere Linux-Distributionen, die nicht verwendet werden apt-get, passen apt-getSie einfach Ihren entsprechenden Paketmanager an (z. B. yumfür Fedora und CentOS).

Hier sind die genauen Befehle, die ich ausgeführt habe, um dies auf meinem Raspberry Pi-Medienserver zum Laufen zu bringen:

sudo apt-get update && sudo apt-get upgrade sudo apt-get install avahi-daemon

Ab diesem Zeitpunkt wird automatisch der Hostname Ihres Computers sowie die .localErweiterung als Domänenname verwendet. Wenn also der Hostname Ihres Computers lautet mediaserver, können Sie im Netzwerk darauf zugreifen, indem Sie mediaserver.localin die URL-Leiste jedes Computers eingeben, auf dem Bonjour / Avahi installiert ist (dh auf allen Macs sowie auf Windows-Computern, auf denen iTunes installiert ist).

camercu
quelle
0

Die Auflösung lokaler Namen ist eine einfache Funktion und Teil der meisten Router, die ich verwendet habe. Es ist auch in DD-WRT-Firmware implementiert. Netgear kümmert sich nicht um diese Funktion, die ständig angefordert wird .

Die Antwort ist also viel einfacher als die hier veröffentlichten - vermeiden Sie die Probleme und ändern Sie Ihren Netgerat-Router auf etwas, das die lokale Namensauflösung unterstützt. Oder wenn dies keine Option ist und Sie die Stärke spüren und die Zeit haben, setzen Sie DD-WRT darauf.

Oleg Mikheev
quelle