ホスト名 (hostname) は、ネットワークに接続されたコンピューターなどの機器を識別しやすいように付けられる名前です。Ubuntu Server導入・運用に際して、ホスト名は最初に行う設定です。本記事では「ホスト名とは何か?」、そしてホスト名の初期設定・変更・確認する方法をわかりやすく解説します。
・ホスト名とホストの違いを知りたい方
・ドメイン名とホスト名の違いを知りたい方。
・Ubuntuでホスト名を設定したい方。
ホスト名 とは?
「ホスト名」(Host name) と「ドメイン名」(Domain name) の違い
TCP/IP(Transmission Control Protocol/Internet Protocol)は、現在のインターネットならびにイントラネット通信でもっとも利用されている通信プロトコルです。TCP/IP通信では、必ずIPアドレスという「ネットワーク上の住所に相当する番号」が必要です。このIPアドレスは数字として示されているため、人が認識するにはわかりづらいですよね。解決する手段として、ドメイン名すなわちDNS (Domain Name System) と呼ばれる文字列を使って自信のネットワーク内のIPアドレスに紐付けした表記を使えるようになっています。
たとえば、ネットワークに接続する「コンピューター」や「コンピューターの集合体」にドメイン名として「example.net」を申請します。1つのドメイン名に対して1つのコンピューターが割り振られていれば問題はありませんが、現在は1つのドメイン名で複数のコンピューターを管理したい場合があります。これは管理するコンピューターが増えてくるとわかります。
「ホスト名」は、自身で管理できるコンピューターに名付けられるインターネット上の名前のことです。「ドメイン名」と同じ役割を与えることができます。ある「ドメイン名」を割り振られた複数のコンピューターの集合体があれば、「ホスト名」は、その集合体内のあるコンピューターのネットワーク上での名前に相当します。
具体的には、複数のコンピューターの集合体の中のあるコンピューターにコンピューター名(=「ホスト」)として「Hogehoge10」と名前を付けます。
このとき、「ホスト名」は、
と名付けます。
ドメイン名「exmaple.net」は「.net」により管理されており、ホスト名「Hogege10.example.net」は「exmaple.net」を所有する者により管理されます。
ここで、
で「ホスト名」はサーバー機に割り当てられるインターネット上の名前で、名前管理はサーバー所有者が行います。
以上をまとめると以下のようなイメージです。

ドメイン名を取得する方法について詳しく知りたい場合は以下の記事をご参照ください。
それでは、具体的にホスト名の初期設定の方法を次に紹介します。
サーバーのホスト名 (host mame) の変更と反映に必要な情報
インターネットワーク(複数のコンピューターの集合体)が下図のネットワークAのようにネットワークに接続されている場合を考えます。インターネット内にルーターなどを通して、イントラネットワークが形成されいます。
イントラネットワークにサーバー機を設置した場合、以下①-④の事前情報が必要です。
①「固定IPアドレス」:プロバイダと契約して取得したグローバルIPアドレス。後半でホスト名として紐付けして使用。
②「ホスト名」:インターネット上の名前として登録。「ホスト名」=「ホスト」.「ドメイン名」で決定します。
③「プライベートIPアドレス」:イントラネット内で利用する専用のIPアドレス(詳細は後述)。
④「ホスト」:プライベートIPアドレスに紐づくコンピューター名。

次に、実際の設定方法を解説します。
ubuntuサーバーでホスト名の初期設定・変更・確認を行う方法
下記にネットワークAを想定して、③のホスト名の設定方法を説明します。
サーバー機側では、以下のコマンド入力が設定上必要です。
# | Ubuntu コマンド | 解説 |
---|---|---|
1 | vi /etc/hostname | 設定ファイル/etc/hostnameでホスト名③を変更 |
2 | hostnamectl set-hostname hogehoge10 | コマンドから/etc/hostnameのホスト名③を変更 |
3 | vi /etc/hosts | 設定ファイル /etc/hostsで イントラネットIPアドレス④とホスト名③の紐付け さらにこの二つをDNS名①と紐づけ |
上記コマンドの1番目と2番目の設定・変更方法は同じ動作をします。2番目を変更すれば1番目のコマンドは必要ありません。一方、1番目もしくは2番目のコマンドでホスト名を変更しても、3番目のホスト名の変更されません。
3番目のコマンドはあくまでもDNS名とイントラネットIPアドレスとホスト名の対応関係を記載するだけといったところでしょうか。
ホスト名をCUIで確認する方法
以下のlsb_releaseコマンドで、念のためにバージョン確認しておきます。
$lsb_release -a
LSB Version: core-9.20170808ubuntu1-noarch:security-9.20170808ubuntu1-noarch
Distributor ID: Ubuntu
Description: Ubuntu 18.04.6 LTS
Release: 18.04
Codename: bionic
最初にコンピューター名、即ちホストを名づけます。
サーバー上でホストがすでに設定されているかどうかはHostnameコマンドを入力して確認できます。
Hostname (ホスト名) が「hogehoge10」の場合、
$ Hostname
とUbuntuのコマンドプロンプト上で入力すると 「hogehoge10」と表示されます。
ホスト名の初期設定・変更方法
①ホストを変更する方法はエディター (emacsコマンド)で「/etc/hostname」を編集します。
編集にはルートユーザー権限の必要から「sudo」を付けます。
$ sudo emacs /etc/hostname
「/etc/hostname」内に[ホスト名]を入力するだけです。たとえば、hogehoge10と文字列を入力するだけで設定できます。
hogehoge10
上記Hostnameコマンドで、hogehoge10と表示されれば成功です。
②ホストを変更する方法はhostnamectl set-hostname [ホスト名]でも同じことができます。
$sudo hostnamectl set-hostname hogehoge10
上記Hostnameコマンドで、hogehoge10と表示されれば成功です。
または、hostnamectlコマンドを入力して、「Static hostname」の部分でも確認できます。
$hostnamectl
Static hostname: HogeHoge10
Icon name: computer-desktop
Chassis: desktop
Machine ID: caaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Boot ID: dbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Operating System: Ubuntu 18.04.6 LTS
Kernel: Linux 4.15.0-194-generic
Architecture: x86-64
ホスト名とIPアドレスの紐付け方法と永続化
ホスト名 にIPアドレスを紐付けしたい場合には、下記コマンド(emacsコマンドの場合) で「/etc/hosts」も開き編集します。ファイル名の指定は「host」でなく「hosts」と複数形です。ここで、IPアドレスとDNSも同時に紐づけできます。
③/etc/hostsの設定変更
$emacs /etc/hosts
たとえば、「etc/hosts」のファイル内容は、
127.0.0.1 localhost localhost.localdomain
192.168.12.10 hogehoge10 hogehoge10.example.net
といった表記になります。
「/etc/hosts」の表記の意味
左側から
[IPアドレス] [正式なホスト] [ホスト名 (エイリアス)]
の順に記載します。
最初の列:「127.0.0.1 localhost localhost.localdomain」 の意味は、コンピューター内のアドレスです。
127.0.0.1は自分自身を示す[IPアドレス]、localhostは自分自身を表すホスト名。localhost.localdomainは自身の仮の内部向けドメイン名です。
二番目の列:「192.168.12.10 hogehoge10 hogehoge10.example.net」の意味は、イントラネット内のアドレスです。
このサーバー機がイントラネットワークの母艦である場合の例ですが、「192.168.12.10」はサーバー機 のプライベートIPアドレス、ホスト名「hogehoge10」(コンピューター名に相当)と、「hogehoge10.example.net」はエイリアスすなわちDNS名(インターネット側のDNS名)を入力します。
プライベートIPアドレスに関して更に詳しく知りたい方は以下の記事をご参考ください。
最後のエイリアスについて以下少し解説します。
/etc/hosts は変更・保存したら自動的に反映にされるようです。確認のためにnslookupコマンドでIPアドレスを叩くと
% nslookup 192.168.12.10
10.12.168.192.in-addr.arpa name = hogehoge10.example.net.
10.12.168.192.in-addr.arpa name = hogehoge10.
と表記されます。
この逆引きで示されるアドレス表記は、反対になっていて、「10.12.168.192.in-addr.arpa」→「192.168.12.10」のことです。
まとめ
これで確認もできました。設定は以上で終了です。お疲れ様でした。
サーバー機を立ち上げる際に最初にすること!
✔ ② hostnamectl set-hostname [ホスト名] (① /etc/hostnameでもOK!)
でホスト名 (hostname)を設定
✔ ③ /etc/hosts
でIPとホスト名 (hostname)を紐づけ