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,恕我直言)。