Amazon ec2 我们可以为EC2实例设置易于记忆的主机名吗?
我正在EC2上运行两个标准Fedora实例。我觉得Amazon分配的实例的公共主机名太奇怪,很难记住。我想把它们改成短的(如红色/蓝色/绿色等) 这样做会有任何退步吗?我如何设置它,使其在重新启动后仍然存在Amazon ec2 我们可以为EC2实例设置易于记忆的主机名吗?,amazon-ec2,hostname,Amazon Ec2,Hostname,我正在EC2上运行两个标准Fedora实例。我觉得Amazon分配的实例的公共主机名太奇怪,很难记住。我想把它们改成短的(如红色/蓝色/绿色等) 这样做会有任何退步吗?我如何设置它,使其在重新启动后仍然存在 谢谢。当然,如果你有自己的域名(设置一个CNAME指向亚马逊主机名),你可以这样做。否则,您会被他们提供给您的服务(或者弹性IP,如果您设置了这些服务之一)。如果您不想与DNS提供商发生冲突,您可以为您的实例使用别名。我真的很惊讶,Amazon在推出时没有为EC2实例提供别名,但与此同时,如
谢谢。当然,如果你有自己的域名(设置一个CNAME指向亚马逊主机名),你可以这样做。否则,您会被他们提供给您的服务(或者弹性IP,如果您设置了这些服务之一)。如果您不想与DNS提供商发生冲突,您可以为您的实例使用别名。我真的很惊讶,Amazon在推出时没有为EC2实例提供别名,但与此同时,如果您想要别名功能,您可以使用免费服务—比记住那些Amazon实例ID容易得多 对于基本主机名,/etc/rc.local解决方案对我有效,但没有给我FQDN。以root用户身份编辑
/etc/sysconfig/network
替换
HOSTNAME=localhost.localdomain
与
然后,重新启动或运行/etc/init.d/network restart
然后,服务器应将其名称报告为FQDN。来自:
更改正在运行的系统上的主机名
在任何Linux系统上,您都可以使用命令hostname
(惊讶?)更改其主机名…
下面是命令行主机名的一些快速用法:
$> hostname
不带任何参数,它将输出系统的当前主机名
$> hostname --fqd
$> hostname NEW_NAME
它将输出系统的完全限定域名(或FQDN)
$> hostname --fqd
$> hostname NEW_NAME
将系统主机名设置为NEW\u NAME
您还可以编辑/etc/hostname
(至少在Ubuntu上)
为了确保它在AWS中重新启动后保持不变,可以在/etc/rc.local
中添加命令,使其在机器启动时运行
还有一种方法可以:
开始之前,请尝试运行
hostname
和hostname--fqdn
,并记下响应内容
您可以编辑/etc/hostname
并设置主机名,该主机名将在重新启动后保留。通过使用hostname-F/etc/hostname
将该值读入主机名,可以强制“重新加载”主机名。退出并登录后,bash提示将更改
警告/注意:是的,将bash提示符中的主机名设置为比
ip-123-123-123-123-123
更有用的东西是很好的,但是我决定离开我的主机名(至少现在是这样),因为看起来很多事情都依赖于以标准方式设置ec2实例上的主机名。在编辑/etc/hostname
并将主机名更改为webserver
之后,许多服务似乎都失败了,因为主机名无法解析,apache也无法启动。接下来,我编辑了/etc/hosts
,并添加了
127.0.0.1 webserver
作为第二行。Apache随后会启动,但抱怨找不到FQDN。我确认运行hostname--fqdn
不再有效
接下来,我查阅了man hostname
,了解到虽然可以设置hostname
,但是FQDN
似乎是通过DNS查找返回的
FQDN
无法使用此命令更改FQDN(由主机名--FQDN返回)或DNS域名(由dnsdomainname返回)。系统的FQDN是解析程序(3)为主机名返回的名称
从技术上讲:FQDN是getaddrinfo(3)返回的名称,用于gethostname(2)返回的主机名。DNS域名是第一个点之后的部分
因此,它取决于如何更改配置(通常在/etc/host.conf中)。通常(如果主机文件是在DNS或NIS之前解析的),您可以在/etc/hosts中更改它
我认为有可能设置系统/欺骗系统返回FQDN,类似于ip-123-123-123.ec2.internal
,即使主机名是webserver
,但在这一点上,它开始看起来麻烦太多了,对我来说,有一个更好的bash提示符可能会导致很多软件和配置问题,所以我决定放弃
我还了解到,许多amazon ec2实例使用了一种称为:
cloud init是Ubuntu包,用于处理云实例的早期初始化。它安装在Ubuntu云映像中,也安装在EC2上提供的官方Ubuntu映像中
它配置的一些内容包括:
- 设置默认区域设置
- 设置主机名
- 生成ssh私钥
- 将ssh密钥添加到用户的.ssh/authorized_密钥,以便他们可以登录
- 设置临时挂载点
[ec2-user ~]$ sudo reboot
[ec2-user ~]$ sudo reboot
如果用户修改了/etc/hostname,它将保持用户管理
此外,如果/etc/cloud/cloud.cfg包含设置为真值的“preserve_hostname”值,则永远不会触及/etc/hostname
有趣的是,如果不更改主机名,cloud init包将为您保持最新
如果其他人有解决办法或能够解决上述问题,并帮助确保没有任何问题可以解决
HOSTNAME=webserver.mydomain.com
[ec2-user ~]$ sudo reboot
[ec2-user@webserver ~]$ hostname
webserver.mydomain.com
HOSTNAME=webserver.localdomain
127.0.0.1 localhost localhost.localdomain
127.0.1.1 webserver.example.com webserver
[ec2-user ~]$ sudo reboot
[ec2-user@webserver ~]$ hostname
webserver.localdomain