What is the difference between a hostname and a fully qualified domain name?

I am new to the world of setting up servers and am baffled by the term hostname and fully qualified domain name (FQDN).
For example, if I want to set up a server that hosts files on the local network i.e. a file server, what would I use a hostname such as myfileserver or something else?
What if I wanted to set up a web server, mail server, etc. that external users could access?


Solution 1:

Your hostname is the name of your computer.

Your fully qualified domain name is your hostname plus the domain your company uses often ending in .local.

So if the name of your computer is bob, and your company's domain is contoso.local, your computer's fully qualified domain name (FQDN) is bob.contoso.local.:

  • Hostname: bob
  • Domain: contoso.com
  • FQDN: bob.contoso.com.

In the case of a domain like contoso.local I did not use an "external" internet domain name. This name doesn't have to be the only way that you address the server.
If you make it available by its IP address you can use DNS or that IP address to allow external users to access it.
The dot at the end of the FQDN is used to indicate the empty top-level domain.

Some more information on DNS:

  • http://www.howstuffworks.com/dns.htm
  • http://en.wikipedia.org/wiki/.local
  • https://en.wikipedia.org/wiki/Fully_qualified_domain_name

Edit: Thanks for the comment on .local domains RobM

Solution 2:

The hostname is just the computer name and the fully qualified domain name is the hostname plus the domain name after it....

hostname: bigbox fqdn: bigbox.mynetwork.com

or commonly the fqdn ends in .local instead of .com but that is environment specific.

Usually you'd have a private DNS that has your .local domain setup in it and a separate DNS server for the public where your .com lives. You don't want to put your .local domain on a public DNS server because someone will have a way to get a list of all your hosts and it exposes your network to attack.

Solution 3:

Think of it as 3 parts

Lets say, a university called FIU. (yes it is a real university) in the computer science side, we have a domain cs.fiu.edu

we also have other servers called moodle, which is the hostname of the server.

hostname = moodle
domain name = cs.fiu.edu
FQDN for that server is called moodle.cs.fiu.edu

now, cs.fiu.edu is a branch from the domain, fiu.edu. so hostname = cs domain = fiu.edu FQDN = cs.fiu.edu (which is a seperate server that hosts that) but the domain cs.fiu.edu belongs to our department. Not sure if it makes sense. But there can also be that scenario.