it-swarm.com.de

Ist es möglich, einen Hostnamen unter Linux zu aliasen?

Ist es möglich, einen Hostnamen unter Linux zu aliasen?

Es wurde von jmillikin in verschiedenen Ubuntu-Foren wie folgt gefragt:


Ist es möglich, einen Hostnamen-Alias ​​zu erstellen? Ähnlich wie/etc/hosts, aber mit anderen Hostnamen anstelle von IP-Adressen. Mit einer solchen Datei könnten Sie also einen Ping-Befehl senden "fakehost1", und es würde "realhost" neu zugeordnet, und dann würde "realhost" in eine IP-Adresse aufgelöst.

# Real Host        # Aliases
realhost           fakehost1 fakehost2 fakehost3

Jemand hat über ssh geantwortet, aber nicht über Ping usw. Mein Hauptzweck ist es, es als Alias ​​für einen Subversion Server zu verwenden. In meinem Fall befindet sich realhost unter einer dynamischen IP-Adresse. Der Alias ​​"/ etc/hosts" funktioniert also nicht. Ich möchte auf meinen Subversion-Server als svn://my_svnserver/my_repos Anstelle von svn://realhost/my_repos Zugreifen.

91
user10178

Für diejenigen, die kein Konto in den Foren haben (oder sich nicht anmelden möchten):

wenn Ihr Hauptproblem nicht Ping, sondern SSH ist, können Sie Ihre ~/.ssh/config erstellen/bearbeiten und Zeilen wie diese hinzufügen:

Host fakehost1
  Hostname real-hostname

Host fakehost2
  Hostname real-hostname2

Host fakehost3
  Hostname real-hostname3

Linux unterstützt Aliasing durch Setzen der env-Variablen HOSTALIASES.

echo "fakehost realhost" > /etc/Host.aliases
echo "export HOSTALIASES=/etc/Host.aliases" >> /etc/profile
. /etc/profile

dann kannst du

ping fakehost

N.B. Für Ping müssen Sie dies als Root einrichten. Sie können dies jedoch als beliebiger Benutzer für jede Anwendung tun, die als dieser Benutzer ausgeführt wird. Ping Suids zur Wurzel.

32
teknopaul

Sie können dies auf Ihrem DNS-Server einrichten. Mit CNAME-Einträgen kann ein Computer unter mehr als einem Hostnamen erkannt werden. Fügen Sie Ihrem DNS-Server also folgende CNAME-Einträge hinzu:


fakehost1 IN CNAME realhost 
fakehost2 IN CNAME realhost 
fakehost3 IN CNAME realhost 
25
Ali Mezgani

Ich mache das oft mit Umgebungsvariablen. Ich weiß, dass dies nur für die Befehlszeile funktioniert, aber hier sehne ich mich am häufigsten nach Hostnamen-Aliasnamen (ich habe mit mehreren Supercomputerkonten gearbeitet, alle mit langen URLs). Hier ist ein Beispiel, wenn Sie BASH verwenden. In ~/.bashrc:

export fakehost = "long.ass.annoying.url.org"

dann in einer frischen Schale:

ssh christopher @ $ fakehost

18
Christopher

Dies ist nur möglich, wenn Sie über einen eigenen lokalen DNS-Server verfügen.

11
theotherreceive

Sie benötigen einen Dyndns-Server, der Ihre aktuelle IP-Adresse einem Hostnamen zuordnet. Sie teilen diesem Server bei jeder Anmeldung Ihre aktuelle IP-Adresse mit und aktualisieren Ihren Hostnamen-Datensatz.

5
Sven

Die Verwendung von /etc/hosts.aliases ist eine Standardfunktion der Bind Resolver-Bibliotheken. Es ist robuster als das Hinzufügen von Einträgen zu/etc/hosts und kann verwendet werden, wenn Sie Ihrem DNS keine CNAMES hinzufügen können (keinen Zugriff darauf haben).

Im Allgemeinen wird empfohlen, CNAMES im DNS mit der entsprechenden Suche zu verwenden, die in /etc/resolv.conf definiert ist.

Das Aktualisieren von/etc/hosts ist nicht sehr robust, da Einträge mit IP-Änderungen synchronisiert werden müssen. Dies funktioniert nur im kleinen Maßstab oder wenn Sie einen Namensdienst zum Verteilen der Hosts-Map verwenden (z. B. über ldap).

Eine andere Lösung könnte DNSMasq http://en.wikipedia.org/wiki/Dnsmasq sein

5
Tom Hallam