【初心者】Ubuntuサーバー構築の設定: ホスト名の設定を行う方法

この記事は 2 分で読めます。
概要

ホスト名 (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」と名前を付けます。

このとき、「ホスト名」は、

「ホスト名」=「ホスト」.「ドメイン名」=Hogege10.example.net

と名付けます。

ドメイン名「exmaple.net」は「.net」により管理されており、ホスト名Hogege10.example.net」「exmaple.net」を所有する者により管理されます。

ここで、

「複数のコンピューターの集合体」=「イントラネット」

「あるコンピューター」=「サーバー」

「ホスト名」はサーバー機に割り当てられるインターネット上の名前で、名前管理はサーバー所有者が行います。

以上をまとめると以下のようなイメージです。

ドメイン名を取得する方法について詳しく知りたい場合は以下の記事をご参照ください。

「ホスト名」と「ホスト」の違い

「ホスト名」はIPアドレスと紐付けて利用する名前なのに対して、「ホスト」はコンピューター名として使われます。

ブラウザー上のURLでよくwww (World Wide Web)と記載されているのを見るかと思います。たとえば、ホスト名「www.example.net」の場合ですと、「www」がホストとなります。

余談ですが、wwwがあるなしの違いが気になる方は以下の記事もご参照ください。

それでは、具体的にホスト名の初期設定の方法を次に紹介します。

サーバーのホスト名 (host mame) の変更と反映に必要な情報

インターネットワーク複数のコンピューターの集合体)が下図のネットワークAのようにネットワークに接続されている場合を考えます。インターネット内にルーターなどを通して、イントラネットワークが形成されいます。

イントラネットワークにサーバー機を設置した場合、以下①-④の事前情報が必要です。

サーバー機と複数のPCが集合体で存在する場合

ネットワーク用の設定 (サーバー機のみ)

「固定IPアドレス」(etc「60.40.xxx.xxx」)

②「ホスト名」(Hogehoge10.exmaple.net)

イントラネット用の設定 (サーバー機とPC)

「プライベートIPアドレス」 (etc「192.168.xxx.xxx」)

④ 「ホスト」 (Hogehoge10)

インターネットからイントラネット内にアクセスが必要なサーバーの設定

「固定IPアドレス」:プロバイダと契約して取得したグローバルIPアドレス。後半でホスト名として紐付けして使用。

②「ホスト名」:インターネット上の名前として登録。「ホスト名」=「ホスト」.「ドメイン名」で決定します。

イントラネット内向けのコンピューターやサーバーの設定

「プライベートIPアドレス」:イントラネット内で利用する専用のIPアドレス(詳細は後述)。

「ホスト」プライベートIPアドレスに紐づくコンピューター名

上記のようなネットワークAとネットワークBがあったとします。

次に、実際の設定方法を解説します。

ubuntuサーバーでホスト名の初期設定・変更・確認を行う方法

下記にネットワークAを想定して、③のホスト名の設定方法を説明します。

環境:Ubuntu Linux 18.04 LTS以降

サーバー機側では、以下のコマンド入力が設定上必要です。

Ubuntu コマンド解説
1vi /etc/hostname設定ファイル/etc/hostnameでホスト名③を変更
2hostnamectl set-hostname hogehoge10コマンドから/etc/hostnameのホスト名③を変更
3vi /etc/hosts設定ファイル /etc/hostsで
イントラネットIPアドレス④とホスト名③の紐付け
さらにこの二つをDNS名①と紐づけ
Ubuntu コマンド

上記コマンドの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
設定の反映

これらの①と②設定は、再起動を行うまで反映されないため、一度shotdown -h nowコマンドで再起動してみてください。

ホスト名と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は自身の仮の内部向けドメイン名です。

127.0.0.1の意味は?

Linuxでは、最初の行にループバックアドレス(127.0.0.1)とホスト名が定義される。ループバックアドレスとはそのコンピューター自身を示すIPアドレスの事です。

二番目の列:「192.168.12.10 hogehoge10 hogehoge10.example.net」の意味は、イントラネット内のアドレスです。

このサーバー機がイントラネットワークの母艦である場合の例ですが、「192.168.12.10」はサーバー機 のプライベートIPアドレスホスト名「hogehoge10」(コンピューター名に相当)と、「hogehoge10.example.net」はエイリアスすなわちDNS名(インターネット側のDNS名)を入力します。

プライベートIPアドレスに関して更に詳しく知りたい方は以下の記事をご参考ください。

最後のエイリアスについて以下少し解説します。

エイリアスにDNS名を入力する意味は?

イントラネットのあるコンピューターから、同じイントラネット内のサーバー機 (IPアドレスが「192.168.12.10」) と通信する際に以下の問題が生じます。イントラネットワーク内のあるPCから、サーバー機が持つ外部のDNS名を検索できません。イントラネット内のサーバー機 は192.168.12.10でアクセスできるため、これをエイリアスに外部のDNS名を打ち込みIPと紐付けておくと便利です。これはWEBブラウザでサーバーを内部と外部からアクセスするときに便利です。

/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)を紐づけ

関連リンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です