更改EC2实例的系统HostName(主机名)

2014年04月02日

在亚马逊AWS的EC2的Linux实例中,如果不改变系统的HostName,每次通过终端登录到系统时,命令提示行显示如下:

[ec2-user@12-34-567-89 ~]$

如果只是管理一台服务器的话还好说,但是我们同时管理多台或者几十台服务器的话,麻烦就大了,

比如,我们要停止某台服务器的某个端口,一不小心,我们可能把别的服务器的端口给停掉了, 灾难就来了。

所以,很有必要给我们的服务器贴标签,使我们一进入到系统就知道在那台服务器。

可以通过以下方法改变服务器的Hostname。

1. 将系统主机名改为公共域名

如果我们拥有公共域名,如qiais.com, 并且我们设置了子域名credit.qiais.com给我们的某台服务器,那么我们可以通过修改
/etc/sysconfig/network 来更改我们的主机名。

vi /etc/sysconfig/network 

编辑/etc/sysconfig/network如下

NETWORKING=yes
NETWORKING_IPV6=no
#HOSTNAME=localhost.localdomain
HOSTNAME=credit.qiais.com

重启服务器,

reboot

再次登录服务器后,发现我们的命令提示符变为如下:

[sai@credit ~]$ 

这样我们就很容易知道这台服务器的主机名为credit相关的域名的服务器了,而不会造成混乱。

2. 不通过公共域名改变主机名

有时候我们的服务器可能没有域名,也不需要域名,特别是在VPN内部运网络的时候,不是每台服务器都需要域名的。

这时候我们可以通过以下方法改变主机名:

vi /etc/sysconfig/network 

编辑/etc/sysconfig/network如下

NETWORKING=yes
NETWORKING_IPV6=no
#HOSTNAME=localhost.localdomain
HOSTNAME=zhifubao.localdomain

编辑/etc/hosts

 127.0.0.1 zhifubao.localdomain webserver localhost localhost.localdomain

重启服务器,

reboot

再次登录服务器后,发现我们的命令提示符变为如下:

[sai@zhifubao ~]$ 

这样我们就知道这台服务器是与支付宝相关的服务器了。

3. 更改命令提示行,不变动Hostname

如果你既不想改变主机名,又想要个容易记住的显示名称,而不是类似于[sai@ip-12-34-567-89 ~]的由AWS自动生成的命令行提示符。

我们可以通过设置命令行提示符昵称的方法来实现:

1. 给命令行添加昵称

[root@ip-12-34-567-89 ~]# sh -c 'echo "export NICKNAME=paypal" > /etc/profile.d/prompt.sh'

2. 修改/etc/bashrc

[root@ip-12-34-567-89 ~ ~]# vi /etc/bashrc 

  # Turn on checkwinsize
  shopt -s checkwinsize
  [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "       <------ 将此处的\h改为$NICKNAME, 参看下一代码块
  # You might want to have e.g. tty in prompt (e.g. more virtual machines)
  # and console windows
  # If you want to do so, just add e.g.
  # if [ "$PS1" ]; then
  #   PS1="[\u@\h:\l \W]\\$ "
  # fi
  # to your custom modification shell script in /etc/profile.d/ directory

改为

  # Turn on checkwinsize
  shopt -s checkwinsize
  [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@$NICKNAME \W]\\$ "
  # You might want to have e.g. tty in prompt (e.g. more virtual machines)
  # and console windows
  # If you want to do so, just add e.g.
  # if [ "$PS1" ]; then
  #   PS1="[\u@\h:\l \W]\\$ "
  # fi
  # to your custom modification shell script in /etc/profile.d/ directory

登出系统,再登陆系统,我们发现,命令提示行改变为:

[root@paypal ~]# 

在没有改变主机名的情况下,我们实现的命令提示行的显示改变。