Frage Ist es möglich, einen Hostnamen in Linux zu aliasieren?


Ist es möglich, einen Hostnamen in Linux zu aliasieren?

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


Ist es möglich, einen Hostnamen-Alias ​​zu erstellen? So ähnlich wie / etc / hosts, aber mit anderen Hostnamen als IP-Adressen. Also das mit einigen so könnte man ping "fakehost1" pingen und es würde neu gemappt werden zu "realhost" und dann "realhost" würde zu einer IP-Adresse aufgelöst werden.

# Real host        # Aliases
realhost           fakehost1 fakehost2 fakehost3

Jemand hat über ssh geantwortet, aber nicht über ping usw. Mein Haupt Zweck ist, es als Alias ​​für ein zu verwenden Subversion Server. In meinem Fall, Realhost steht unter einer dynamischen IP-Adresse. Der Alias ​​"/ etc / hosts" funktioniert nicht. Ich möchte Zugriff auf meinen Subversion-Server als svn://my_svnserver/my_repos anstatt svn://realhost/my_repos.


75
2017-09-14 15:56


Ursprung


Ich denke, ich vermisse etwas. Willst du damit sagen, du könntest / etc / hosts nicht wie 10.0.3.4 some.host.org another.domain.com aussehen lassen? Du musst eine Referenz aus irgendeinem programmatischen Grund verwenden? - jim_m_somewhere


Antworten:


Für diejenigen, die keinen Account in den Foren haben (oder sich nicht einloggen wollen):

Wenn Ihr Hauptproblem nicht Ping, sondern SSH ist, können Sie Ihre erstellen / bearbeiten   ~ / .ssh / config fügt Zeilen wie diese hinzu:

Host fakehost1
  Hostname real-hostname

Host fakehost2
  Hostname real-hostname2

Host fakehost3
  Hostname real-hostname3

46
2017-08-26 20:21



Der Hostname-Teil muss in einer neuen Zeile stehen. Hier ist ein gutes Tutorial, wie man eine Konfigurationsdatei wie folgt erstellt: matryall.net/blog/2008/06/ssh-favourite-hosts - Code Commander
gute Abhilfe, danke. Eine bessere Lösung wäre natürlich die Verwendung von cnames auf DNS - Iurii


Linux unterstützt das Aliasing, indem die Umgebungsvariable HOSTALIASES gesetzt wird.

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

dann kannst du

ping fakehost

N.B. Ping erfordert, dass Sie dies als root einrichten, aber Sie können es als beliebiger Benutzer für jede Anwendung ausführen, die als dieser Benutzer ausgeführt wird. ping sudet zum root.


28
2018-03-21 18:41



funktionierte nicht für mich auf Ubuntu 12.04 :( - Dimitry K
Die HOSTALIASES funktionieren nur für ausführbare Dateien, bei denen das Setuid-Flag nicht gesetzt ist. Es funktioniert also nicht für Ping (es sei denn, Sie sind bereits beim Ausführen von Ping root). Ich denke, dies wird getan, um zu verhindern, dass setuid-ausführbare Dateien mit einem anderen Host verbunden werden als beabsichtigt. - Boris
Auch funktioniert nicht für Curl - Benubird
es wird selten im erwarteten Ergebnis enden. HOSTALIASES funktioniert nur für Anwendungen mit getaddrinfo (3) oder gethostbyname (3) - Dies bedeutet, dass es für Anwendungen funktioniert, die versuchen, den Hostnamen durch einen bestimmten Systemaufruf explizit aufzulösen: Es ist niemals der Fall. sehen unix.stackexchange.com/questions/10438/ ...  so ist die einzige Lösung lokale DNS (Dnsmasq) - Nadir
Scheint, dass dieser Trick veraltet ist. Die Funktionen gethostbyname * (), gethostbyaddr * (), herror () und hstrerror () sind veraltet. Wenn Ihr System DNSMasq lokal ausführt, können Sie für jede Auflösung, die DNS verwendet, einen Alias ​​verwenden. - teknopaul


Sie können dies auf Ihrem DNS-Server einrichten. CNAME-Einträge ermöglichen es, dass ein Computer von mehreren Hostnamen erkannt wird. So fügen Sie Ihrem DNS-Server CNAME-Einträge hinzu:


fakehost1 IN CNAME realhost 
fakehost2 IN CNAME realhost 
fakehost3 IN CNAME realhost 


23
2017-09-14 16:04



Danke, ich werde es morgen versuchen, nachdem ich meinen lokalen DNS-Server eingerichtet habe.
Ein leichter DNS-Server wäre zu versuchen dnsmasq (es dient auch DHCP). - sybreon


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

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

dann in einer frischen Schale:

SSH Christopher @ $ Fakehost


16
2017-07-23 16:15





Die einzige Möglichkeit, dies zu tun, ist, wenn Sie Ihren eigenen lokalen DNS-Server haben.


8
2017-09-14 16:02



Ja, jetzt scheint es die einzige Lösung zu sein. Vielen Dank. Kann nicht upvote, da ich nicht genug Ruf habe.
Wenn die sich ständig ändernde IP-Adresse einer DSL- oder Wählverbindung das Problem ist, ist dyndns eine bessere Lösung, IMHO. - Sven♦
Nein, es ist keine bessere Lösung. Sobald der Server einen Hostnamen hat, der von etwas anderem behandelt wird, ist für alle OP-Anforderungen ein CNAME für den ersten Hostnamen erforderlich. DYNDNS und Ähnliches verlassen sich darauf, dass der Host dem DNS-Server mitteilt, dass sich seine IP geändert hat. - theotherreceive


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 CNAMES nicht zu Ihrem DNS hinzufügen können (haben keinen Zugriff darauf).

Im Allgemeinen empfiehlt es sich, CNAMES im DNS zu verwenden, wobei die entsprechende Suche in /etc/resolv.conf definiert ist.

Die Aktualisierung von / etc / hosts ist nicht sehr robust, da Einträge mit IP-Änderungen synchronisiert werden müssen. Dies funktioniert nur in einem kleinen Maßstab oder wenn Sie einen Namensdienst verwenden, um die Host-Karte zu verteilen (zB über ldap).

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


4
2017-10-28 03:44



Ich habe versucht, /etc/hosts.aliases in CENTOS 6 zu verwenden, aber diese Funktion scheint nicht zu funktionieren. Ich kann auch keine Dokumentation über seine Verwendung oder Existenz finden. Wo soll ich hinschauen? - mdpc


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


4
2017-09-14 16:05