在 Linux 中可以为主机名设置别名吗?

在 Linux 中可以为主机名设置别名吗?

在 Linux 中可以为主机名设置别名吗?

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


是否可以创建主机名别名?有点像 /etc/hosts,但使用其他主机名而不是 IP 地址。这样,使用这样的文件,您可以 ping “fakehost1”,它会重新映射到“realhost”,然后“realhost”会解析为 IP 地址。

# Real host        # Aliases
realhost           fakehost1 fakehost2 fakehost3

有人回答了有关 ssh 的问题,但没有回答有关 ping 等的问题。我的主要目的是将其用作颠覆服务器。在我的例子中,realhost 位于动态 IP 地址下。因此,“/etc/hosts”别名不起作用。我想以 而svn://my_svnserver/my_repos不是 的 身份访问我的 Subversion 服务器svn://realhost/my_repos

答案1

对于那些没有论坛账户(或不想登录)的人:

如果您的主要问题不是 ping 而是 ssh,您可以创建/编辑 ~/.ssh/config 添加如下行:

Host fakehost1
  Hostname real-hostname

Host fakehost2
  Hostname real-hostname2

Host fakehost3
  Hostname real-hostname3

答案2

Linux 通过设置 HOSTALIASES 环境变量来支持别名。

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

然后你可以

ping fakehost

注意:ping 要求您以 root 身份进行设置,但您可以以任何用户身份对以该用户身份运行的任何应用程序执行此操作。ping suids 到 root。

答案3

您可以在 DNS 服务器上进行设置,CNAME 记录允许一台机器被多个主机名识别。因此,请像这样将 CNAME 记录添加到您的 DNS 服务器:


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

答案4

唯一可以做到这一点的方法就是您拥有自己的本地 DNS 服务器。

相关内容