是否可以保留网络别名 - 而无需在 hosts 文件中指定 IP 地址?例如,我有,abcd.efgh.com
但希望abcd -> abcd.efgh.com
这样ping
并ssh
正常工作。
我希望它能够使用 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