如何为主机名添加别名?

如何为主机名添加别名?

是否可以保留网络别名 - 而无需在 hosts 文件中指定 IP 地址?例如,我有,abcd.efgh.com但希望abcd -> abcd.efgh.com这样pingssh正常工作。

我希望它能够使用 abcd.efgh.com 上的动态 IP,这就是我不想明确说明 IP 地址的原因。

答案1

ping一个稍微不太方便的方法是为和都设置别名ssh,例如:

别名 pingfoo="ping foohost.domain.tld"

OpenSSH 支持添加主机名别名(以及更多选项)到~/.ssh/config

主持人 foo
    主机名 foohost.domain.tld
    # 您还可以添加用户、端口和每个可能的 ssh(1) 选项。

答案2

使用dnsmasq的选项,--cname=<cname>,<target>您可以创建一个 CNAME,表明<cname>实际上是。请注意,这仅当dnsmasq 知道 的<target>DNS 名称时才有效(在 hosts 文件中或通过 DHCP)。<target>

如果 dnsmasq 不起作用,未绑定是一个在类似情况下也支持未知目标的 DNS 解析器。

答案3

如果你的操作系统使用 GNUglibc,您就可以使用它的$HOSTALIASES功能。

来自手册页gethostbyname(3)

描述

       [等等等等] 如果名称不以点结尾,则环境变量
       设置了 HOSTALIASES 后,HOSTALIASES 指向的别名文件将首先
       搜索 name(请参阅 hostname(7) 了解文件格式)。当前
       除非名称以点结尾,否则将搜索域及其父域。

这适用于gethostbyname()和较新的版本;但是,它似乎根本getaddrinfo()不会产生影响......ping

相关内容