Gibt es eine Möglichkeit, Host-Aliase (wie in /etc/hosts
) auf Benutzerbasis, dh in einer Datei, zu definieren /home/user/.hosts
?
Mein primäres Ziel ist es, Host-Aliase einfach über Rsync zwischen den Computern in meiner kleinen LAN zu teilen. Da es keinen Rechner gibt, der immer zuverlässig verbunden ist, kommt ein DNS-Server nicht in Frage (oder?).
Vielen Dank.
linux
local-area-network
hosts
Mrucci
quelle
quelle
alias ssh="ssh "
Fügen Sie Ihre .bashrc ein (beachten Sie das nachstehende Leerzeichen am Ende des Alias),alias myhost="[email protected]"
und dann können Sie sagen,ssh myhost
und es wird funktionieren.~/.ssh/config
dem Sie die Zeilen:Host my-host
undHostname 10.0.0.xxx
<- IP des Computers einfügen. Das Schöne ist, dass Sie hier auch den Benutzernamen, den Port, den zu verwendenden Schlüssel usw. angeben könnenAntworten:
Eine bessere Lösung wäre, Avahi und libnss-mdns zu installieren und dann
HOSTNAME.local
Adressen zu verwenden.Diese Namen sind nicht benutzerspezifisch, lösen jedoch das erklärte Ziel, für alle Computer in einem LAN gemeinsame Namen zu haben.
quelle
ping hostnameAlias
) ohne Root-Rechte. Avahi macht fast den richtigen Job, weil ich den Rechner $ HOSTNAME als Alias verwenden kann. Nur aus Neugier: Wo wird dieses Mapping gemacht?Unter https://github.com/figiel/hosts erfahren Sie, wie Sie genau das tun, wonach Sie fragen.
Dies ist eine kleine Bibliothek, die über LD_PRELOAD geladen wird und die gethostbyname () und mehrere verwandte Funktionen überschreibt, die Programme für die DNS-Auflösung verwenden. Es funktioniert gut für mich. Die einzige Einschränkung, die ich gefunden habe, ist, dass der Chrome-Webbrowser keine native DNS-Auflösung verwendet, sondern stattdessen einen eigenen DNS-Client implementiert. Um dieses Problem zu lösen, müssen Sie den DNS-Client von Chrome deaktivieren .
quelle
Die Linux-Glibc-Implementierung kann das nicht.
Aber Sie könnten es mit einer NSS-Bibliothek erweitern, die es könnte. Dies wäre einfach zu schreiben, da Sie den relevanten Teil von libc, der sich im Verzeichnis nss_files in befindet, abreißen könnten
http://ftp.gnu.org/gnu/glibc/glibc-2.5.tar.bz2
Zum Beispiel
Dies wäre jedoch eine ziemlich seltsame Sache, die nicht dem Standard entspricht.
quelle
Wenn Sie zwei Maschinen hatten die meiste Zeit sein würde , könnten Sie BIND auf jeden von ihnen stehen und ihnen die DNS machen servers..or eine davon bekommen ( http://www.marvell.com/products/embedded_processors/ Entwickler / Kirkwood / sheevaplug.jsp ).
Verwenden Sie BIND, um Ihren DNS-Server immer auf dem neuesten Stand zu halten.
quelle
Wie die anderen Antworten auf dieser Seite beschreiben, gibt es Möglichkeiten, ähnliche Funktionen zu erzielen, aber:
Nein, es gibt keine "benutzerspezifische" Datei
/etc/hosts
oder eine andere Möglichkeit, die Standard-Namensauflösung als nicht privilegierter Benutzer in GNU / Linux zu überschreiben.quelle
Es scheint viel einfacher zu sein, ein Skript zu schreiben, das herausfindet, welche Hosts aktiv sind, und dann den Hostnamen für den folgenden rsync-Befehl festlegt. Etwas wie das
Dies ist ungetestet und setzt voraus, dass Sie es entsprechend anpassen müssen.
quelle
rsync src olivia:/dst