sviluppo-web-qa.it

È possibile alias un nome host in Linux?

È possibile alias un nome host in Linux?

È stato chiesto da jmillikin in vari forum di Ubuntu come segue:


È possibile creare un alias di nome host? Un po 'come/etc/hosts, ma con altri nomi host anziché indirizzi IP. In modo che con alcuni file come questo, si possa fare il ping "fakehost1", e verrebbe mappato nuovamente su "realhost", quindi "realhost" verrebbe risolto in un indirizzo IP.

# Real Host        # Aliases
realhost           fakehost1 fakehost2 fakehost3

Qualcuno ha risposto su ssh, ma non sul ping, ecc. Il mio scopo principale è quello di usarlo come alias per un server Subversion . Nel mio caso, realhost ha un indirizzo IP dinamico. Quindi, l'alias "/ etc/hosts" non funziona. Voglio accedere al mio server Subversion come svn://my_svnserver/my_repos invece di svn://realhost/my_repos.

91
user10178

Per coloro che non hanno un account nei forum (o non desiderano accedere):

se il tuo problema principale non è il ping ma quello di ssh, puoi creare/modificare il tuo ~/.ssh/config aggiungendo linee come queste:

Host fakehost1
  Hostname real-hostname

Host fakehost2
  Hostname real-hostname2

Host fakehost3
  Hostname real-hostname3

Linux supporta l'aliasing impostando la variabile env HOSTALIASES.

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

allora puoi

ping fakehost

N.B. ping richiede di configurarlo come root, ma è possibile farlo come qualsiasi utente per qualsiasi applicazione che viene eseguita come tale utente. il ping va su root.

32
teknopaul

Puoi installarlo sul tuo server DNS, i record CNAME consentono a una macchina di essere conosciuta da più di un nome host. Quindi aggiungi i record CNAME al tuo server DNS in questo modo:


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

Lo faccio spesso con variabili d'ambiente. So che questo funziona solo per la riga di comando, ma è dove sto spesso desiderando gli alias hostname (ho lavorato con diversi account di supercomputer, tutti con URL lunghi). Ecco un esempio, se stai usando BASH. In ~/.bashrc:

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

quindi, in una Shell nuova:

ssh christopher @ $ fakehost

18
Christopher

L'unico modo per farlo è se si dispone del proprio server DNS locale.

11
theotherreceive

Avrai bisogno di un server dyndns che mapperà il tuo attuale indirizzo IP su un nome host. Indica a questo server il tuo indirizzo IP corrente ogni volta che accedi e aggiornerà il tuo record del nome host.

5
Sven

L'uso di /etc/hosts.aliases è una funzione standard delle librerie del risolutore di bind. È più robusto dell'aggiunta di voci a/etc/hosts e può essere usato se non puoi aggiungere CNAMES al tuo DNS (non hai accesso ad esso).

In generale, è consigliabile utilizzare CNAMES nel DNS con la RICERCA appropriata definita in /etc/resolv.conf.

L'aggiornamento di/etc/hosts non è molto efficace poiché le voci devono essere sincronizzate con le modifiche dell'IP. Funziona davvero solo su piccola scala o quando si utilizza un servizio di nomi per distribuire la mappa degli host (ad es. Tramite LDAP).

Un'altra soluzione potrebbe essere DNSMasq http://en.wikipedia.org/wiki/Dnsmasq

5
Tom Hallam