如何设置别名服务器名称


15

我想在笔记本电脑(Linux)上设置别名服务器名称。我希望使用的/etc/hosts/文件,因为远程服务器的IP地址更改。我要这样做的原因是服务器名称长为27个字符。我想做这个:

ssh server

代替:

ssh server.subdomain.domain.com

我有几个使用的子域。我该如何设置?

PS:我不认为这是一个骗子,因为其他类似的答案也无法解决IP地址将更改的事实。


~/.ssh/config/etc/resolve.cnf下面都是很好的答案。
杰西

Answers:


20

使用档案 ~/.ssh/config

示例内容:

Host jane
HostName long.server.name
User root

那你可以用ssh jane代替ssh root@long.server.name

如果IP地址更改并且您不知道该服务器的revDNS,则可以尝试使用命令host 1.0.0.1,其中IP地址为1.0.0.1-这将为您提供可以配置的当前revDNS名称。

如果主机名(反向DNS)随ip更改而更改,或者服务器位于NAT之后,则可以使用Dynamic Dns(dyndns.org)和/或使用端口转发。


7

为了使用较短的“ ssh服务器”而不是“ ssh server.subdomain.domain.com”,您只需要将“ subdomain.domain.com”附加到/etc/resolv.conf中的搜索字段。如果没有搜索字段,则可以创建一个。

例如-假设您的/etc/resolv.conf看起来像这样:

搜索domain1.com domain2.com domain3.com
域名服务器1.2.3.4
域名服务器5.6.7.8

修改搜索行,使其如下所示:

搜索domain1.com domain2.com domain3.com subdomain.domain.com

如果希望首先搜索subdomain.domain.com,则可以将其放在此列表的前面。


1
我喜欢你的回答。因为它将允许跨多个应用程序使用服务器的分类器名称。不过,我认为每次尝试连接可能会产生更多的DNS流量-但我不会打赌。
mnmnc

1
许多现代操作系统都具有在本地缓存对dns查询的响应的能力。第一次查询记录时,答案将来自dns,但随后的查询将从缓存中得到答复,直到记录的ttl过期为止。您可以使用“ ipconfig / displaydns”和“ sudo killall -INFO mDNSResponder”在Windows中查看缓存的内容,然后在mac osx上查看/var/log/system.log的内容。
2013年

因此,我想如果条目已缓存且未过期-如果此时目标IP更改-您将获得连接超时。除非我想念什么?
mnmnc


1

您可以在.bashrc或中添加别名.zshrc

alias server1='ssh server1'

~/.ssh/config例如,在其中添加了server1 :

Host server1
Hostname address
User username-on-this-server
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.