是否可以在 Linux 中为主机名设置别名?
jmillikin 在各种 Ubuntu 论坛上提出的问题如下:
# Real host # Aliases
realhost fakehost1 fakehost2 fakehost3
Run Code Online (Sandbox Code Playgroud)
有人回答了 ssh,但没有回答 ping 等问题。我的主要目的是将它用作Subversion服务器的别名。就我而言,realhost 位于动态 IP 地址下。因此,“/etc/hosts”别名不起作用。我想访问我的 Subversion 服务器svn://my_svnserver/my_repos而不是
svn://realhost/my_repos.
Xio*_*iov 71
对于那些没有论坛帐户(或不想登录)的人:
如果您的主要问题不是 ping 而是 ssh,您可以创建/编辑您的 ~/.ssh/config 添加如下行:
Host fakehost1
Hostname real-hostname
Host fakehost2
Hostname real-hostname2
Host fakehost3
Hostname real-hostname3
Run Code Online (Sandbox Code Playgroud)
tek*_*aul 37
Linux 通过设置 HOSTALIASES 环境变量来支持别名。
echo "fakehost realhost" > /etc/host.aliases
echo "export HOSTALIASES=/etc/host.aliases" >> /etc/profile
. /etc/profile
Run Code Online (Sandbox Code Playgroud)
然后你可以
ping fakehost
Run Code Online (Sandbox Code Playgroud)
NB ping 要求您以 root 身份进行设置,但您可以以任何用户身份对以该用户身份运行的任何应用程序进行设置。ping suids 到 root。
Ali*_*ani 25
你可以在你的 DNS 服务器上设置它,CNAME 记录允许一台机器被多个主机名知道。因此,将 CNAME 记录添加到您的 DNS 服务器,如下所示:
fakehost1 IN CNAME realhost
fakehost2 IN CNAME realhost
fakehost3 IN CNAME realhost
Run Code Online (Sandbox Code Playgroud)
小智 20
我经常用环境变量来做到这一点。我知道这仅适用于命令行,但它是我最渴望主机名别名的地方(我使用过几个超级计算机帐户,所有帐户都带有长 URL)。这是一个示例,如果您使用的是 BASH。在 ~/.bashrc 中:
export fakehost="long.ass.annoying.url.org"
然后,在一个新的外壳中:
ssh 克里斯托弗@$fakehost
/etc/hosts.aliases 的使用是绑定解析器库的标准功能。它比向 /etc/hosts 添加条目更强大,如果您无法将 CNAMES 添加到您的 DNS(无法访问它),则可以使用它。
一般来说,最佳实践是在 DNS 中使用 CNAMES,并在 /etc/resolv.conf 中定义适当的 SEARCH。
更新 /etc/hosts 不是很可靠,因为条目必须与 IP 更改保持同步。这仅适用于小规模或当您使用名称服务分发主机映射(例如通过 ldap)时。
另一种解决方案可能是 DNSMasq http://en.wikipedia.org/wiki/Dnsmasq
| 归档时间: |
|
| 查看次数: |
190584 次 |
| 最近记录: |