是否有可能在Linux中别名主机名?

是否有可能在Linux中别名主机名

jmillikin在各种Ubuntu论坛上提出如下问题:


有没有可能创build一个主机名别名? 有点像/ etc / hosts,但与其他主机名而不是IP地址。 因此,有了这样的文件,你可以ping“fakehost1”,并将其重新映射到“真实主机”,然后“真实主机”将被parsing为IP地址。

# Real host # Aliases realhost fakehost1 fakehost2 fakehost3 

有人已经回答了关于ssh,但不是关于ping等。我的主要目的是作为一个Subversion服务器的别名。 在我的情况下,realhost是在一个dynamic的IP地址下。 所以,“/ etc / hosts”别名不起作用。 我想以svn://my_svnserver/my_repos而不是svn://realhost/my_repos来访问我的Subversion服务器。

    对于那些在论坛上没有账户的人(或者不想login):

    如果你的主要问题不是ping而是ssh,你可以创build/编辑你的〜/ .ssh / config添加这样的行:

     Host fakehost1 Hostname realhost Host fakehost2 Hostname realhost Host fakehost3 Hostname realhost 

    你可以在你的DNS服务器上设置这个,CNAMElogging允许一台机器被多个主机名所知。 因此,将CNAMElogging添加到您的DNS服务器:

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

    Linux通过设置HOSTALIASES envvariables来支持别名。

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

    那么你可以

     ping fakehost 

    NB平台要求你设置为root用户,但是你可以像任何用户那样以任何用户身份运行。 平底锅。

    我经常用环境variables来做这件事。 我知道这只适用于命令行,但它是我最经常渴望的主机名别名(我曾与几个超级计算机帐户,所有与长URL)。 这里是一个例子,如果你使用BASH。 在〜/ .bashrc中:

    导出fakehost =“long.ass.annoying.url.org”

    然后,在一个新鲜的shell:

    ssh christopher @ $ fakehost

    唯一的办法就是如果你有自己的本地dns服务器。

    使用/etc/hosts.aliases是绑定parsing器库的标准function。 它比向/ etc / hosts添加条目更加可靠,如果您不能将CNAMES添加到您的DNS(无法访问它),则可以使用它。

    通常情况下,最佳做法是在DNS中使用CNAMES,并在/etc/resolv.conf中定义相应的SEARCH。

    更新/ etc / hosts不是很健壮,因为条目必须保持与IP更改同步。 这只适用于小规模或当您使用名称服务来分发主机地图(例如通过ldap)。

    另一个解决scheme可能是DNSMasq http://en.wikipedia.org/wiki/Dnsmasq

    您将需要一个dyndns服务器,将您的当前IP地址映射到一个主机名。 无论何时login,您都会告诉服务器当前的IP地址,并且会更新您的主机名logging。

    (Dyndns.org是一个不错的select,恕我直言)。