Действительно ли возможно сохранить сетевой псевдоним - не указывая IP-адрес в файле hosts? Например, я имею abcd.efgh.com
но хочу abcd -> abcd.efgh.com
так, чтобы ping
и ssh
работайте, как они обычно были бы.
Я хочу, чтобы это работало с динамическим IP на abcd.efgh.com, вот почему я не хочу заявлять IP-адрес явно.
Немного меньше convienent пути состоит в том, чтобы настроить псевдонимы для обоих ping
и ssh
, например:
alias pingfoo="ping foohost.domain.tld"
Поддержки OpenSSH, добавляющие псевдонимы имени хоста (и намного больше опций) к ~/.ssh/config
:
Host foo Hostname foohost.domain.tld # You can also add User, Port, every possible ssh(1) option.
С dnsmasq
опция --cname=<cname>,<target>
можно сделать CNAME, который указывает на это <cname>
на самом деле <target>
. Обратите внимание, что это работает только если название DNS <target>
известен dnsmasq (или в файле hosts или через DHCP).
Если dnsmasq не работает, Несвязанный сопоставитель DNS, который поддерживает также неизвестные цели в аналогичной ситуации.
Если Ваша ОС использует GNU glibc, можно использовать $HOSTALIASES
функция.
Из страницы руководства gethostbyname(3)
:
DESCRIPTION [etc etc etc] If name doesn't end in a dot and the environment variable HOSTALIASES is set, the alias file pointed to by HOSTALIASES will first be searched for name (see hostname(7) for the file format). The current domain and its parents are searched unless name ends in a dot.
Это работает с обоими gethostbyname()
и более новое getaddrinfo()
; однако, это, кажется, не влияет ping
вообще...