FQDN说明

以下摘自百度百科:

FQDN:(Fully Qualified Domain Name)完全合格域名/全称域名,是指主机名加上全路径,全路径中列出了序列中所有域成员。全域名可以从逻辑上准确地表示出主机在什么地方,也可以说全域名是主机名的一种完全表示形式。从全域名中包含的信息可以看出主机在域名树中的位置。DNS解析流程:首先查找本机HOSTS表,有的直接使用表中定义,没有查找网络连接中设置的DNS 服务器由他来解析。

例子:

例如,acmecompany公司的Web服务器的全域名可以是 acmecompany.,而若sales主机是在销售部子域,则它的全域名可以是sales.acmecompany。当给出的名字像acmecompany而不是acmecompany.时,他们通常是指主机名,而名字后边带有点号(“.”是指根域名服务器)的则认为是全域名。这种区别在理解和控制解析过程时是非常重要的。点号实际上指出了域名树的根。

作用:

全域名在实际中是非常有用的。电子邮件就使用全域名作为收信人的电子邮件地址,如janicejones@ acmecompany. com,其中收信人为janicejones,跟在收信人名字后面是符号@,@后面是邮件服务器的全域名,或者说是邮件服务器所在企业的域名,最后是顶层域名.com。. com意味着acmecompany是一个商业机构。


以下摘自他人博客

完全合格域名(FQDN点结尾的域名

例如bbs.cnblogs.com.就是一个完全合格域名。在一般的网络应用中,我们可以省略完全合格域名最右侧的点,但DNS对这个点不能随便省略。因为这个点代表了DNS的根,有了这个点,完全合格域名就可以表达为一个绝对路径,例如bbs.cnblogs.com.就可以表示为DNS根下的com子域下cnblogs.com域中一个名为bbs的主机。如果DNS发现一个域名不是以点结尾的完全合格域名,就会把这个域名加上当前的区域名称作为后缀,让其满足完全合格域名的形式需求。例如DNS会把域名bbs处理为bbs.blogs.com.

 

域名就相当于一个命名空间,在这个命名空间下,属于这个域的各个主机都可以创建自己的主机名称。

linux下查看方式:

hostname, 查看主机名

hostname -f 查看FQDN

dnsdomainname 查看域

uname -h 查看主机名

 

问题:hostname -f返回错误:hostname: Unknown host

答:

The hostname command returns results from DNS and /etc/hosts.

hostname is equivilant to uname -n and is the actual "hostname" or "nodename" of the box.
All the other hostname arguments use this nodename to look up info.

So before going any further, I should explain the /etc/hosts file format.
The first field is fairly obvious, its the IP address all the hostnames on the line should resolve to. The second field is the primary hostname for that IP. The remaining fields are aliases.

So if you run hostname -f it will first try to resolve the IP for your nodename. Depending on how you have the hosts: entry configured in /etc/nsswitch.conf this method will vary.

If you have it configured to use dns, it will use the search domains configured in /etc/resolv.conf until it gets an IP back from DNS.
If you have it configured to use files it will look in /etc/hosts to find a line where either the primary hostname or the alias name is your current nodename (uname -n), and then return the IP address in that line.
Once it has the IP it will then try a reverse lookup on that IP. Again it will use DNS for this and your hosts file based on your nsswitch.conf. In the case of using your hosts file, it will return the primary entry (which is the first field after the IP in the file).

hostname -a will only work with the hosts file since doing a reverse lookup in DNS only gives you 1 result. With the hosts file it return the alises in the matching line (which is everything after the first entry, the primary hostname).

 

So in short, the likely reason for your issue is that you have no entry in /etc/hosts that contains your hostname (uname -n).

Examples
If your nodename is 'foobar', and you have an entry in /etc/hosts such as this:

127.0.0.1 foobar.example.com foobar localhost.localdomain localhost
Then you will get the following command results:

# hostname
foobar
# uname -n
foobar

# hostname -f
foobar.example.com

# hostname -a
foobar localhost.localdomain localhost

回答来自:http://unix.stackexchange.com/questions/158877/linux-hostname-f-command-is-not-working-on-rhel

posted @ 2017-01-17 11:21  mofy  阅读(4431)  评论(0编辑  收藏  举报