110 votes

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

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

La question suivante a été posée par jmillikin sur différents forums Ubuntu :


Est-il possible de créer un alias de nom d'hôte ? Un peu comme /etc/hosts, mais avec d'autres noms d'hôtes plutôt que des adresses IP. Ainsi, avec un fichier fichier comme celui-ci, vous pourriez envoyer un ping à "fakehost1", et il serait re-mappé en "realhost", et ensuite "realhost" serait résolu en une adresse IP.

# Real host        # Aliases
realhost           fakehost1 fakehost2 fakehost3

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

0 votes

J'ai peut-être raté quelque chose. Vous voulez dire que vous ne pouvez pas avoir /etc/hosts comme 10.0.3.4 some.host.org another.domain.com Vous devez utiliser une référence pour une raison programmatique ?

82voto

Dave Mateer Points 163

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 le ping mais le ssh, vous pouvez créer/modifier votre fichier ~/.ssh/config en ajoutant des lignes comme celles-ci :

Host fakehost1
  Hostname real-hostname

Host fakehost2
  Hostname real-hostname2

Host fakehost3
  Hostname real-hostname3

2 votes

La partie "nom d'hôte" doit être sur une nouvelle ligne. Voici un bon tutoriel sur la façon de créer un fichier de configuration comme celui-ci : mattryall.net/blog/2008/06/ssh-favourite-hosts

2 votes

Bonne solution de contournement, merci. Mais bien sûr, la meilleure solution serait d'utiliser les cnames sur les DNS.

42voto

teknopaul Points 584

Linux prend en charge l'aliasing en définissant la variable d'environnement HOSTALIASES.

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

alors vous pouvez

ping fakehost

N.B. ping vous demande de 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 sous cet utilisateur. ping se soumet à root.

5 votes

N'a pas fonctionné pour moi sur Ubuntu 12.04 :(

3 votes

Les HOSTALIASES ne fonctionnent que pour les exécutables qui n'ont pas l'indicateur setuid activé. Cela ne fonctionnera donc pas pour ping (à moins que vous ne soyez déjà root lors de l'exécution de ping). Je suppose que cela est fait pour éviter de piéger les exécutables setuid en les connectant à un hôte différent de celui prévu.

2 votes

Ne fonctionne pas non plus pour les boucles

27voto

Ali Mezgani Points 3770

Vous pouvez configurer ceci sur votre serveur DNS, les enregistrements CNAME permettent à une machine d'être connue par plus d'un nom d'hôte. Ajoutez donc les enregistrements CNAME à votre serveur DNS comme suit :

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

6 votes

Un serveur DNS léger à essayer serait dnsmasq (il sert également de DHCP).

23voto

Je fais souvent cela 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 besoin d'alias de noms d'hôtes (j'ai travaillé avec plusieurs comptes de superordinateurs, tous avec de longues URL). Voici un exemple, si vous utilisez BASH. Dans ~/.bashrc :

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

puis, dans un nouveau Shell :

ssh christopher@$fakehost

11voto

theotherreceive Points 8185

La seule façon de le faire est de disposer de votre propre serveur DNS local.

1 votes

Oui, maintenant ça semble être la seule solution. Merci. Je ne peux pas augmenter les votes car je n'ai pas assez de réputation.

0 votes

Si le changement constant d'adresse IP d'une connexion DSL ou dialup est le problème, dyndns est une meilleure solution, IMHO.

1 votes

Non, ce n'est pas une meilleure solution. Une fois que le serveur a un nom d'hôte qui est géré par quelque chose d'autre, tout ce dont le PO a besoin est un CNAME pour le premier nom d'hôte. DYNDNS et similaires reposent sur le fait que l'hôte informe le serveur DNS que son IP a changé.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X