web-dev-qa-db-fra.com

Est-il possible d'alias un nom d'hôte sous Linux?

Est-il possible d'alias un nom d'hôte sous Linux?

Il a été demandé par jmillikin à divers forums Ubuntu comme suit:


Est-il possible de créer un alias de nom d'hôte? Sorte de/etc/hosts, mais avec d'autres noms d'hôte plutôt qu'avec des adresses IP. Ainsi, avec un fichier comme celui-ci, vous pouvez cingler "fakehost1", et il serait remappé à "realhost", puis "realhost" serait résolu en une adresse IP.

# Real Host        # Aliases
realhost           fakehost1 fakehost2 fakehost3

Quelqu'un a répondu à propos de ssh, mais pas à propos de ping, etc. Mon objectif principal est de l'utiliser comme alias pour un serveur Subversion . Dans mon cas, realhost est sous une adresse IP dynamique. Ainsi, l'alias "/ etc/hosts" ne fonctionne pas. Je souhaite accéder à mon serveur Subversion en tant que svn://my_svnserver/my_repos au lieu de svn://realhost/my_repos.

91
user10178

Pour ceux qui n'ont pas de compte sur les forums (ou qui ne souhaitent pas se connecter):

si votre problème principal n'est pas de cingler mais de ssh, vous pouvez créer/éditer votre ~/.ssh/config en ajoutant des lignes comme celles-ci:

Host fakehost1
  Hostname real-hostname

Host fakehost2
  Hostname real-hostname2

Host fakehost3
  Hostname real-hostname3

Linux prend en charge l'alias en définissant la variable env HOSTALIASES.

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

ensuite vous pouvez

ping fakehost

N.B. ping vous oblige à le configurer en tant que root, mais vous pouvez le faire en tant que n'importe quel utilisateur pour n'importe quelle application qui s'exécute en tant que cet utilisateur. ping suids pour rooter.

32
teknopaul

Vous pouvez configurer cela sur votre serveur DNS, les enregistrements CNAME permettent à une machine d'être connue par plusieurs noms d'hôte. Alors, ajoutez des enregistrements CNAME à votre serveur DNS comme ça:


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

Je le fais souvent avec des variables d'environnement. Je sais que cela ne fonctionne que pour la ligne de commande, mais c'est là que j'ai le plus souvent envie d'alias de nom d'hôte (j'ai travaillé avec plusieurs comptes de superordinateurs, tous avec des URL longues). Voici un exemple, si vous utilisez BASH. Dans ~/.bashrc:

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

puis, dans une nouvelle coquille:

ssh christopher @ $ fakehost

18
Christopher

La seule façon de procéder est de disposer de votre propre serveur DNS local.

11
theotherreceive

Vous aurez besoin d'un serveur dyndns qui mappera votre adresse IP actuelle à un nom d'hôte. Vous informerez ce serveur de votre adresse IP actuelle chaque fois que vous vous connecterez, et il mettra à jour votre enregistrement de nom d'hôte.

5
Sven

L'utilisation de /etc/hosts.aliases est une fonctionnalité standard des bibliothèques du résolveur de liens. C'est plus robuste que d'ajouter des entrées à/etc/hosts et peut être utilisé si vous ne pouvez pas ajouter CNAMES à votre DNS (n'y avez pas accès).

En général, la meilleure pratique consiste à utiliser CNAMES dans le DNS avec une RECHERCHE appropriée définie dans /etc/resolv.conf.

La mise à jour de/etc/hosts n'est pas très robuste car les entrées doivent être synchronisées avec les changements d'IP. Cela ne fonctionne vraiment qu'à petite échelle ou lorsque vous utilisez un service de noms pour distribuer la carte des hôtes (par exemple via ldap).

Une autre solution peut être DNSMasq http://en.wikipedia.org/wiki/Dnsmasq

5
Tom Hallam