Est-il possible d'alias un nom d'hôte sous Linux?
Il a été demandé par jmillikin à divers forums Ubuntu comme suit:
# 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
.
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.
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
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
La seule façon de procéder est de disposer de votre propre serveur DNS local.
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.
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