Hier sind Details des Rechners, auf den ich mit seinem Hostnamen zugreifen möchte:
$ hostname
hostname
$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 hostname.company.local hostname
Es ist eine Standardinstallation von Debian 6 (Squeeze), also habe ich noch nichts gespielt.
Das bekomme ich von einer Maschine (die Debian Unstable ausführt), die versucht, auf die obige Maschine zuzugreifen:
$ ping hostname
ping: unknown host hostname
$ ping hostname.company.local
ping: unknown host hostname.company.local
$ cat /etc/resolv.conf
nameserver 192.168.2.21
nameserver 192.168.2.51
search company.local
networking
Tshepang
quelle
quelle
ping
) oder auf einem Computer, den der Client konsultiert, etwas tun . Was ist das Betriebssystem auf dem Client? Wie ist die DNS-Konfiguration?ping
und wer/etc/hosts
nicht?Antworten:
Im Internet, einschließlich lokaler Netzwerke, rufen sich Computer über IP-Adressen gegenseitig an . Um von Maschine A aus unter Verwendung des Namens von Maschine B auf Maschine B zuzugreifen, muss Maschine A eine Möglichkeit haben, den Namen von B seiner IP-Adresse zuzuordnen. Es gibt drei Möglichkeiten, Maschinennamen in A zu deklarieren:
unix.stackexchange.com
.Es gibt viele Möglichkeiten, wie diese in der Praxis funktionieren können. es ist unmöglich, sie alle abzudecken. In dieser Antwort beschreibe ich einige häufige Situationen.
Hosts-Datei
Die hosts-Dateimethode hat den Vorteil, dass keine spezielle Methode erforderlich ist. Es kann umständlich sein, wenn Sie über mehrere Computer verfügen, da Sie jeden Computer aktualisieren müssen, wenn sich der Name eines Computers ändert. Es ist nicht geeignet, wenn die IP-Adresse von B dynamisch zugewiesen wird (sodass Sie bei jeder Verbindung mit dem Netzwerk eine andere erhalten).
Eine Hosts-Datei ist eine einfache Liste von Zeilen, die Namen zu IP-Adressen zuordnen. Es sieht aus wie das:
Auf Unix-Systemen lautet die Hosts-Datei
/etc/hosts
. Unter Windows ist esc:\windows\system32\drivers\etc\hosts
. Nahezu jedes Betriebssystem, mit dem Sie eine Verbindung zum Internet herstellen können, verfügt über eine ähnliche Datei. Wikipedia hat eine Liste .So fügen Sie einen Eintrag für B in die Hosts-Datei von A ein:
Bestimmen Sie die IP-Adresse von B. Führen Sie auf B den Befehl aus
ifconfig
(wenn der Befehl nicht gefunden wird, versuchen Sie es/sbin/ifconfig
). Die Ausgabe enthält folgende Zeilen:In diesem Beispiel lautet die IP-Adresse von B 10.3.1.42. Wenn mehrere
inet addr:
Zeilen vorhanden sind , wählen Sie die Zeile aus, die Ihrer Netzwerkkarte entspricht, niemals denlo
Eintrag oder einen Tunnel oder virtuellen Eintrag./etc/hosts
. Siehe Wie führe ich einen Befehl als Systemadministrator (root) aus ?DHCP + DNS in Heim- oder kleinen Büronetzwerken
Diese Methode ist mit Abstand die einfachste, wenn Sie über die erforderliche Ausrüstung verfügen. Sie müssen nur ein Gerät konfigurieren, und alle Ihre Computer kennen die Namen der anderen. Bei dieser Methode wird davon ausgegangen , dass Ihre Computer ihre IP-Adressen über DHCP beziehen. Hierbei handelt es sich um eine Methode, mit der Computer automatisch eine IP-Adresse abrufen, wenn sie eine Verbindung zum Netzwerk herstellen. Wenn Sie nicht wissen, was DHCP ist, ist dies wahrscheinlich der Fall.
Wenn Ihr Netzwerk über einen Heimrouter verfügt , ist dies der beste Ort, um Namen für Computer zu konfigurieren, die an diesen Router angeschlossen sind. Zunächst müssen Sie die MAC-Adresse von B ermitteln. Jedes Netzwerkgerät verfügt über eine eindeutige MAC-Adresse. Führen Sie auf B den Befehl aus
ifconfig -a
(wenn der Befehl nicht gefunden wird, versuchen Sie es/sbin/ifconfig -a
). Die Ausgabe enthält folgende Zeilen:In diesem Beispiel lautet die MAC-Adresse
01:23:45:67:89:ab
. Sie müssen die HWaddr-Leitung auswählen, die dem Netzwerkanschluss entspricht, der über ein Kabel mit dem Router verbunden ist (oder die WLAN-Karte, wenn Sie über WLAN verbunden sind). Wenn Sie mehrere Einträge haben und nicht wissen, um welche es sich handelt, schließen Sie das Kabel an und überprüfen Sie, welches Netzwerkgerät eine IP-Adresse erhält (inet addr
Zeile direkt darunter).Suchen Sie nun auf der Weboberfläche Ihres Routers nach einer Einstellung wie „DHCP“. Name und Ort der Einstellung hängen vollständig vom Router-Modell ab, die meisten verfügen jedoch über ähnliche Grundeinstellungen. So sieht es auf einer Tomato-Firmware aus :
Geben Sie die MAC-Adresse, eine IP-Adresse und den gewünschten Namen ein. Sie können eine beliebige IP-Adresse im Adressbereich Ihres lokalen Netzwerks auswählen. Die meisten Heimrouter sind für einen Adressbereich der Form 192.168 vorkonfiguriert. x . y oder 10. x . y . z . Auf dem oben gezeigten Tomato-Router gibt es beispielsweise auf der Registerkarte "Netzwerk" eine Einstellung für "Router-IP-Adresse" mit dem Wert 10.3.0.1 und eine Einstellung für "Subnetzmaske" mit dem Wert 255.255.255.0, was bedeutet, dass Computer eingeschaltet sind Das lokale Netzwerk muss eine Adresse der Form 10.3.0 haben. z . Es gibt auch einen Adressbereich für automatisch zugewiesene DHCP-Adressen (10.3.0.129–10.3.0.254). Wählen Sie für Ihre manuell zugewiesene DHCP-Adresse eine aus, die nicht in diesem Bereich liegt.
Verbinden Sie nun B mit dem Netzwerk. Es sollte die von Ihnen angegebene IP-Adresse erhalten und über den angegebenen Namen von jedem Computer im Netzwerk erreichbar sein.
Machen Sie Ihren eigenen DNS-Server mit Dnsmasq
Wenn Sie keinen fähigen Heimrouter haben, können Sie dieselbe Funktionalität auf jedem Linux-Computer einrichten. Ich werde erklären, wie Sie mit Dnsmasq DNS einrichten . Es gibt viele ähnliche Programme. Ich habe mich für Dnsmasq entschieden, weil es einfach zu konfigurieren und leicht zu handhaben ist (wie es beispielsweise der oben abgebildete Tomato-Router verwendet). Dnsmasq ist auf den meisten Linux- und BSD-Distributionen für PCs, Server und Netzwerkgeräte verfügbar.
Wählen Sie einen Computer, der immer eingeschaltet ist, eine statische IP-Adresse hat und auf dem eine Art Linux oder BSD ausgeführt wird. Nennen wir es S (für Server). Installieren Sie auf S das
dnsmasq
Paket (sofern es nicht bereits vorhanden ist). Im Folgenden gehe ich davon aus, dass die Konfigurationsdatei ist/etc/dnsmasq.conf
; Der Speicherort kann bei einigen Distributionen variieren. Jetzt müssen Sie einige Dinge tun./etc/hosts
(siehe Abschnitt „Hosts-Datei“ oben) und sicherzustellen, dass/etc/dnsmasq.conf
dieno-hosts
Direktive nicht unkommentiert ist. (Zeilen, die mit einem beginnen,#
sind auskommentiert.) Sie können die Namen in eine andere Datei einfügen. Wenn Sie dies tun, fügen Sie eine Zeileaddn-hosts=/path/to/hosts/file
ein/etc/dnsmasq.conf
.Teilen Sie Dnsmasq mit, wie IP-Adressen für Computernamen im Internet abgerufen werden sollen.
resolvconf
Paket. In den meisten Fällen funktioniert alles sofort.Wenn Ihnen Ihr Netzwerkadministrator oder Ihr Internetdienstanbieter die Adressen von DNS-Servern mitgeteilt hat, geben Sie diese ein
/etc/dnsmasq.conf
, zum Beispiel:Wenn Sie Ihre aktuellen DNS-Einstellungen nicht kennen, schauen Sie in die Datei
/etc/resolv.conf
. Wenn Sie eine Zeile wie sehennameserver 8.8.8.8
, fügen Sie eine Zeileserver=8.8.8.8
ein/etc/dnsmasq.conf
. Nachdem Sie geändert haben/etc/dnsmasq.conf
, starten Sie Dnsmasq neu. Der Befehl dazu hängt von der Verteilung ab. Typische Möglichkeiten sindrestart dnsmasq
oder/etc/init.d/dnsmasq restart
./etc/resolv.conf
(als root), entfernen Sie jedenameserver
Zeile und setzen Sienameserver 127.0.0.1
stattdessen./etc/resolv.conf
möglicherweise nicht optimal, wenn Sie dasresolvconf
Paket mit laufendem Netzwerk installiert haben . Stellen Sie sicher , dass die Dateienbase
,head
undtail
in dem/etc/resolvconf/resolv.conf.d/
Verzeichnis keine enthaltennameserver
Einträge, dann führen Sieresolvconf -u
(als root)./etc/resolv.conf
und ersetzen Sie allenameserver
Zeilen durch eine einzige,nameserver 10.3.0.2
wobei 10.3.0.2 die IP-Adresse von S ist (siehe oben, um die IP-Adresse von S herauszufinden).Sie können Dnsmasq auch als DHCP- Server verwenden, damit Computer automatisch die Adresse erhalten, die ihrem Namen entspricht. Dies würde den Rahmen dieser Antwort sprengen. Konsultieren Sie die Dnsmasq-Dokumentation (es ist nicht schwierig). Beachten Sie, dass in einem bestimmten lokalen Netzwerk nur ein einziger DHCP-Server vorhanden sein kann (die genaue Definition des lokalen Netzwerks würde den Rahmen dieser Antwort sprengen).
Namen im globalen Internet
Bisher habe ich ein lokales Netzwerk angenommen. Was ist, wenn Sie einer Maschine, die sich in einem anderen Winkel der Welt befindet, einen Namen geben möchten? Sie können weiterhin eine der oben genannten Techniken anwenden, mit der Ausnahme, dass die Teile, die DHCP betreffen, nur in einem lokalen Netzwerk anwendbar sind. Wenn Ihre Computer über öffentliche IP-Adressen verfügen, können Sie alternativ Ihren eigenen öffentlichen Namen für sie registrieren. (Sie können einem öffentlichen Namen auch eine private IP-Adresse zuweisen. Dies ist weniger verbreitet und weniger nützlich, es gibt jedoch keine technischen Schwierigkeiten.)
Erhalten Sie Ihren eigenen Domainnamen
Sie können Ihren eigenen Domainnamen erhalten und Hostnamen innerhalb dieser Domain IP-Adressen zuweisen. Sie müssen den Domainnamen bei einem Domainnamenanbieter registrieren. Dies kostet in der Regel 10 bis 15 US-Dollar pro Jahr (für die günstigsten Domains). Verwenden Sie die Webschnittstelle Ihres Domain Name Providers, um Hostnamen Adressen zuzuweisen.
Dynamisches DNS
Wenn Ihre Computer über eine dynamische IP-Adresse verfügen, können Sie das dynamische DNS- Protokoll verwenden, um die IP-Adresse zu aktualisieren, die dem Computernamen zugeordnet ist, wenn sich die Adresse ändert. Nicht alle Domain-Namen-Anbieter unterstützen dynamisches DNS. Kaufen Sie also vor dem Kauf ein. Für den persönlichen Gebrauch stellt No-IP einen kostenlosen dynamischen DNS-Dienst zur Verfügung, wenn Sie eigene Domains verwenden (z
example.ddns.net
. B. ).quelle
Verwenden Sie Multicast-DNS (mDNS). Dies ist ein Null-Konfigurationsprotokoll, das in LAN-Subnetzen funktioniert. Kein Server erforderlich. Verwendet die
.local
TLD (die Sie bereits verwenden).Weil Sie fragen, scheint alles andere übertrieben. Wenn nicht, würden Sie wahrscheinlich nicht fragen.
quelle
avahi
Paket (en). Sie können Ihr Netzwerk beispielsweise über abfragenavahi-browse -alr
.und
quelle
service restart dhcpd
). Der zweite Teil würde auf dem Client ausgeführt, und auf den meisten Distributionen sollte jetzt als ausgeführt werdenservice networking restart
.Computer wissen nicht nur auf magische Weise, welche Hostnamen zu welchen IP-Adressen gehören. Sogar auf localhost ist eine Art Nachschlag beteiligt.
Sie müssen Ihre anderen Systeme so konfigurieren, dass sie einen Namenssuchdienst verwenden. Dies können
/etc/hosts
Client-, LDAP-, NSSwitch- oder normale DNS-Server sein. Ich verwendebind
und gebe alle lokalen Maschinen innerhalb einer lokalen Domain ein und lasse sie dann DNS für diese Site bereitstellen.quelle