Ich habe einen Mac Mini (Yosemite) in meinem lokalen Netzwerk und es läuft überhaupt kein DNS-Server. Wenn ich von einem Terminal auf meinem Macbook Air (Yosemite) über SSH darauf zugreifen möchte, kann ich Folgendes eingeben:
$ ssh myserver.local
Und das funktioniert gut.
Aber ich wollte vermeiden, jedes Mal die „.local“-Domain eingeben zu müssen, also habe ich die „local“-Domain zur Liste der Suchdomains in den Netzwerkeinstellungen hinzugefügt (für meinen Wi-Fi-Adapter, der derzeit in meinem MBA verwendet wird ).
Wenn ich dann versuche:
$ ssh myserver
das funktioniert nicht (Hostname konnte nicht aufgelöst werden).
Irgendeine Idee warum?
Die Hostnamenauflösung in Mac OS X (seit ~10.3) hat grob gesagt - ich schließe diverse Cache-Mechanismen aus - folgenden Ablauf:
Gültige Namen für die verschiedenen Methoden zur Namensauflösung:
für 1: fast beliebige Namen
für 2: name.local
für 3: name (+ search.domain in Ihren Netzwerkeinstellungen) Ein Start Of Authority (SOA) Record für die Top Level Domain ist obligatorisch.
für 4: fqdn
In Ihrem ersten Szenario ( myserver.local
) verwenden Sie nur „Dateien“ und mDNS. 'Dateien' schlägt fehl, da es keinen Eintrag myserver.local
in Ihrer Hosts-Datei gibt. mDNS kann ihn erfolgreich auflösen, da es sich um einen gültigen und auflösbaren mDNS-Namen handelt.
In Ihrem zweiten Szenario ( myserver
& search.domain local
) verwenden Sie 1, 2, 3 (und 4). „Dateien“ schlägt fehl, weil Sie keinen Eintrag haben myserver
, mDNS schlägt fehl, weil es kein gültiger mDNS-Name ist. DNS (Suchdomänen) schlägt fehl, weil Sie keinen DNS-Server mit einem SOA-Eintrag für .local in Ihrem Netzwerk haben (sowie DNS).
Geben Sie also einfach sudo nano /etc/hosts
Terminal ein und fügen Sie die Zeile hinzu:
a.x.y.z myserver
(axyz= IP-Nummer Ihres Servers) und es sollte funktionieren. Wenn Sie wirklich faul sind, kann sogar ein 'a' als Name ausreichen. Verwenden Sie jedoch keine einzelnen Zahlen (wie 1 oder 123), da ssh dann möglicherweise versucht, eine Verbindung zu 0.0.0.1 oder 0.0.0.123 herzustellen. Mindestens ping verbindet sich mit 0.0.0.1 oder 0.0.0.123.
Die Antwort von @klanomath erklärt perfekt, wie die Namensauflösung funktioniert, warum Ihr Versuch nicht funktioniert hat und wie Sie auf Ihrem lokalen Computer ein Pseudonym für eine statische Adresse über die /etc/hosts
Datei erstellen können.
Wenn es jedoch myserver
keine statische Adresse hat, sondern dynamisch zugewiesen wird (z. B. durch DHCP), /etc/hosts
ist dies nicht ideal, da man einen Weg finden muss, die darin enthaltene Adresse auf dem neuesten Stand zu halten.
Für SSH kann man stattdessen einen Alias erstellen in /etc/ssh/ssh_config
(systemweit) oder ~/.ssh/config
(benutzerspezifisch):
Host myserver
HostName myserver.local
Dann können Sie einfach ssh myserver
.
Einführung
klanomath