今天是博客的四岁生日,又一年啦,可喜可贺。
关于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,则内容如下:
1 |
HOSTNAME=server.domain.com |
修改/etc/hosts的内容:
1 |
服务器的IP server.domain.com server |
也就是你的服务器IP+空格+FQDN格式的Hostname+空格+以“.”为分隔符的第一位。如果里面已有原Hostname的记录,那么必须删除掉。
最后执行:
1 2 |
hostname server.domain.com service network restart |
Debian类
修改文件/etc/hostname,在里面输入的内容是FQDN格式的Hostname以“.”为分隔符的第一位,例如我要使用server.domain.com,那么在/etc/hostname中的内容就应该是:
1 |
server |
接下来修改/etc/hosts的内容,此处的格式与RHEL类一样,同样的,要记得删除旧的记录。
1 |
服务器IP server.domain.com server |
最后执行:
1 |
/etc/init.d/hostname.sh |
PS1处的hostname可能没变,重新登录或者执行BASH,就会显示新的Hostname。
如果无误,执行hostname -f就可以输出FQDN格式的Hostname,执行hostname -i就能输出你的服务器IP。
Comments are closed.