Unix Like, 操作系统, 服务器

Linux下的HostName与DNSDomain

今天是博客的四岁生日,又一年啦,可喜可贺。

关于Linux上的Hostname,用过Linux的都不陌生,各位也清楚如何修改Hostname,不过格式正确的,且做好了后续操作的,相信没多少……

下面的Hostname格式是各位最常用的的(正则表达式):

^[a-zA-Z0-9\-]+$

例如:helloworld,goodjob,myserver

我在这里可以告诉你们,这种格式的Hostname是错的。

这种Hostname格式,也比较多人使用(正则表达式):

^[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-]+$

例如:domain.com,my.name

很抱歉,这种也是错误的,只是没前面那种严重。

 

那什么才是正确的Hostname格式呢?

当然是FQDN格式,何谓FQDN格式?如下(正则表达式):

^([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-]+$

举几个例子:server.domain.com,my.server.com

 

何谓DNSDomain?

就拿server.domain.com做例子吧,以“.”作为分隔符,那么就会分成三个部分,分别是server,domain,com,我们只拿掉第一个和第一个“.”,剩下的domain.com就是DNSDomain。

 

后续操作又是什么呢?

就是修改/etc/hosts,相信很多人都忽略这一步了,从而导致各种问题,例如sendmail启动慢,邮件发送慢,甚至无法发送邮件,Freeradius无法正常使用等。

 

最后来说下修改Hostname的正确步骤:

RHEL类

RHEL类的修改/etc/sysconfig/network文件,该文件中有一行以HOSTNAME开头的,更改其等于号后面的内容即可,例如我要更改Hostname为server.domain.com,则内容如下:

修改/etc/hosts的内容:

也就是你的服务器IP+空格+FQDN格式的Hostname+空格+以“.”为分隔符的第一位。如果里面已有原Hostname的记录,那么必须删除掉。

最后执行:

 

Debian类

修改文件/etc/hostname,在里面输入的内容是FQDN格式的Hostname以“.”为分隔符的第一位,例如我要使用server.domain.com,那么在/etc/hostname中的内容就应该是:

接下来修改/etc/hosts的内容,此处的格式与RHEL类一样,同样的,要记得删除旧的记录。

最后执行:

PS1处的hostname可能没变,重新登录或者执行BASH,就会显示新的Hostname。

 

如果无误,执行hostname -f就可以输出FQDN格式的Hostname,执行hostname -i就能输出你的服务器IP。

(96 Posts)

自信、努力、活出精彩;以前未所见的颜色,绘大千世界!

View all author’s posts

13 thoughts on “Linux下的HostName与DNSDomain”

    1. 用什么更改Hostname不重要,重要的是格式。
      有些程序的正常运行依赖于Hostname,我知道的有MAIL,Freeradius。
      用SMTP的话,邮件就不是通过本机发送给对方了,而是通过SMTP服务器,所以要看SMTP服务器的设置。

      1. 是。我就是说vps用smtp所以不是很必要在意hostname吧。。而且一个vps有两个网站的话该用哪个做hostname呢。。

          1. 我有一台VPS。里面有两个网站,一个是aaa.com,另一个是bbb.com,我的hostname目前是ccc,就是你说的不合格的hostname。那么现在改hostname该改成什么?下面是我的hosts
            127.0.0.1 localhost localhost.localdomain
            ::1 localhost localhost.localdomain
            167.88.124.x ccc
            2604:180:1::74fe:xxxx ccc

Leave a reply

Your email address will not be published. Required fields are marked *