Можно ли использовать псевдоним имени хоста в Linux?
Jmillikin спрашивал об этом на различных форумах Ubuntu следующим образом:
# Real host # Aliases
realhost fakehost1 fakehost2 fakehost3
Кто-то ответил о ssh, но не о ping и т. Д. Моя основная цель - использовать его как псевдоним для Subversion сервер. В моем случае realhost находится под динамическим IP-адресом. Итак, псевдоним «/ etc / hosts» не работает. Я хочу получить доступ к моему серверу Subversion как svn://my_svnserver/my_repos
вместо того svn://realhost/my_repos
.
Для тех, у кого нет аккаунта на форумах (или не желает входить в систему):
если ваша основная проблема заключается не в ping, а в ssh, вы можете создать / отредактировать ~ / .ssh / config, добавив такие строки:
Host fakehost1
Hostname real-hostname
Host fakehost2
Hostname real-hostname2
Host fakehost3
Hostname real-hostname3
Linux поддерживает псевдонимы, задав переменную env HOSTALIASES.
echo "fakehost realhost" > /etc/host.aliases
echo "export HOSTALIASES=/etc/host.aliases" >> /etc/profile
. /etc/profile
тогда ты можешь
ping fakehost
N.B. ping требует, чтобы вы установили его как root, но вы можете сделать это как любой пользователь для любого приложения, которое запускается от имени этого пользователя. ping suid для получения root-прав.
Вы можете настроить это на своем DNS-сервере, записи CNAME позволяют машине быть известной более чем под одним именем хоста. Поэтому добавьте записи CNAME на свой DNS-сервер следующим образом:
fakehost1 IN CNAME realhost
fakehost2 IN CNAME realhost
fakehost3 IN CNAME realhost
Я часто делаю это с переменными окружения. Я знаю, что это работает только для командной строки, но именно здесь я чаще всего жажду псевдонимов хостов (я работал с несколькими учетными записями суперкомпьютеров, все с длинными URL-адресами). Вот пример, если вы используете BASH. В ~ / .bashrc:
export fakehost = "long.ass.annoying.url.org"
затем в свежей оболочке:
ssh кристофер @ $ fakehost
Единственный способ сделать это - иметь собственный локальный DNS-сервер.
Использование /etc/hosts.aliases является стандартной функцией библиотек преобразователя связывания. Это более надежно, чем добавление записей в / etc / hosts, и может использоваться, если вы не можете добавить CNAMES в свой DNS (у вас нет доступа к нему).
Как правило, лучше всего использовать CNAMES в DNS с соответствующим ПОИСКОМ, определенным в /etc/resolv.conf.
Обновление / etc / hosts не очень надежно, так как записи должны синхронизироваться с изменениями IP. Это действительно работает только в небольшом масштабе или когда вы используете службу имен для распространения карты хостов (например, через ldap).
Другим решением может быть DNSMasq http://en.wikipedia.org/wiki/Dnsmasq
Вам понадобится сервер dyndns, который сопоставит ваш текущий IP-адрес с именем хоста. Вы будете сообщать этому серверу свой текущий IP-адрес при каждом входе в систему, и он обновит запись вашего имени хоста.