Linuxのホスト名やFQDNを設定する

初期設定で必要なものとして、ホスト名の設定やFQDNを設定する作業があります。

CentOS6では「hostname」コマンド、「/etc/hosts」を変更する方法でしたが、CentOS7以降は「hostnamectl set-hostname」で設定するようになります。
ホスト名の変更、FQDNの設定について詰まった点があったので今回は手順についてメモしていきたいと思います。

Linuxにおけるホスト名は、ネットワーク上で特定のコンピュータを識別するためのラベルであり、ユーザーがコンピュータを参照しやすくするために重要です。

ホスト名とは

ホスト名は、コンピュータがネットワーク上で一意に識別されるための名前です。これにより、ユーザーはIPアドレスを覚えることなく、わかりやすい名前でコンピュータにアクセスできます。例えば、192.168.1.4の代わりに「linuxlaptop」と呼ぶことができます。 
Linuxでは、ホスト名を設定または変更するためにいくつかの方法があります。一般的な方法は以下の通りです。 

  1. hostnameコマンド: 一時的にホスト名を変更するには、ターミナルでhostname 新しいホスト名と入力します。ただし、再起動すると元に戻ります。
  2. 恒久的な変更: 恒久的にホスト名を変更するには、/etc/hostnameファイルを編集し、新しいホスト名を入力します。
    また、/etc/hostsファイル内の古いホスト名も新しいものに変更する必要があります。 

  3. systemdを使用: systemdを使用している場合、hostnamectl set-hostname 新しいホスト名コマンドを使用してホスト名を変更できます。 
Linuxのホスト名は、ネットワーク上でのコンピュータの識別に重要な役割を果たします。わかりやすいホスト名を設定することで、管理やトラブルシューティングが容易になります。ホスト名の設定や変更は、システム管理において基本的なスキルの一つです。

完全修飾ドメイン名(FQDN)とは?

FQDNとは、インターネット上でホストを一意に特定するための完全なドメイン名のことを指します。FQDNは、ホスト名、サブドメイン、そしてトップレベルドメインの3つの要素で構成されています。

FQDNの定義

完全修飾ドメイン名(FQDN)とは、特定のコンピュータシステムがネットワーク上で識別されるために必要な、一意の識別子であり、階層化されたドメイン名体系の中に位置付けられています。

FQDNは”ホスト名“と”ドメイン名“の2つの主要な部分から成り立っています。ホスト名は、特定のコンピュータのインスタンスを示し、ドメイン名はそのコンピュータがどのドメインに属しているかを特定する役割を果たします。たとえば、”example.com”は、example.comドメイン内に存在する”example”というホストのFQDNに該当します。

FQDNの構成要素

完全修飾ドメイン名(FQDN)の構成要素は以下のように分類されます。

  1. ホスト名は、特定のドメイン内に存在するコンピュータまたはデバイスを識別するための名前です。
  2. ドメイン名とは、ホスト名の後に続く部分であり、ドット(.)で区切られた階層的な構造を持っています。
  3. トップレベルドメイン(TLD)とは、 ドメイン名の最終部分で、一般的には.com、.org、.netなどのドメイン拡張子が含まれます。
    ※なお、jp(日本)や.us(アメリカ合衆国)などの特定の国や地域を示すための2文字が最後に付くものは、「国コードトップレベルドメイン(ccTLD)」といいます。

FQDNの利用用途

FQDNの利用用途としては、ネットワーク上の特定のデバイスやリソースを一意に識別するために広く利用されています。具体的には以下のような用途が含まれます。

  1. ウェブアドレス
    ウェブサイトへのアクセスを行う際に使用されるURLは、FQDNを活用して特定のドメインへのトラフィックを適切にルーティングします。
  2. 電子メールアドレス
    電子メールアドレスのドメイン部分はFQDNで構成されており、これによってメッセージの宛先となるサーバーを特定することができます。
  3. ネットワークルーティング
    FQDNは、ネットワークデバイスが特定のホストやサブネットにデータパケットをルーティングする際に必要な情報を提供します。
  4. DNSルックアップ
    FQDNは、DNSサーバーに対してクエリを実行し、ホスト名をIPアドレスに変換する際に利用されます。
  5. アプリケーション識別
    FQDNは、特定のサーバーやドメインに接続するためのホスト識別子として、アプリケーションやサービスに使用されることがあります。

FQDNの利点

FQDNの利点としては、ネットワーク上のデバイスを明確に識別し、その位置や階層を示すための強力なツールとなります。その主な利点の一つは、デバイスに対して正確で一意のアドレスを提供できる点です。これにより、ルーターやDNSサーバーなどのネットワーク機器は、送信されるパケットを適切な宛先にルーティングすることが可能になります。また、FQDNを利用することで、ネットワーク上のデバイスの位置を特定し、サブドメインやホスト名を用いて階層構造を作成することができます。これにより、ネットワーク管理者が大規模なネットワーク環境を効果的に管理し、トラフィックを適切に制御することができるのです。

FQDNの欠点

FQDNの欠点としては、以下のような点が挙げられます。これらの理由から、FQDNが常に最適なソリューションであるとは限りません。

  • FQDNは長くなりがちで、特にサブドメインが多く存在する場合には記憶や処理が難しくなることがあります。
  • FQDNは数字と文字の組み合わせから構成されているため、人間が理解したり読んだりするのが難しい場合があるのです。
  • FQDNは、DNSスプーフィングやフィッシング攻撃など、さまざまなセキュリティの脆弱性を引き起こす可能性があるため、注意が必要です。
  •  FQDNの管理には、DNSサーバーの更新や維持管理といった継続的なメンテナンスが必要であり、これにはコストがかかることがあります。

現在のホスト名とIPアドレスを確認する

ホスト名の確認

ホスト名の確認コマンドは以下です。

$ hostname
もしくは
$ hostnamectl status

ちなみにドメイン名を確認したい場合は「hostname -d」、FQDNを表示したい場合は「hostname -f」となります。

IPアドレスの確認

IPアドレスの確認は以下のコマンドで実行します。

$ hostname -I
もしくは
$ ip a

///「ip a」の出力例
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.8/24 brd 192.168.1.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::222:33ff:fe44:5555/64 scope link
       valid_lft forever preferred_lft forever

 

ホスト名を設定する

まずは「hostnamectl」でホスト名を変更します。
※FQDNを含めない場合はホスト名だけ入力して「sudo hostnamectl set-hostname hogehoge」とすれば良いです。

今回は「192.168.1.8」の端末に対してホスト名:hogehogeとFQDN:hogehoge.co.jpを設定します。

$ sudo hostnamectl set-hostname hogehoge.co.jp

 

反映確認をします。

$ cat /etc/hostnamehogehoge.co.jp$ hostnamectl statusStatic hostname: hogehoge.co.jpIcon name: computer-vmChassis: vmMachine ID: 4bc36c645d664ee09fb867b9eb00feabBoot ID: 2250292eb6df4d2aa323da54eaff5011Virtualization: xenOperating System: Amazon Linux 2CPE OS Name: cpe:2.3:o:amazon:amazon_linux:2Kernel: Linux 5.10.130-118.517.amzn2.x86_64Architecture: x86-64Architecture: x86-64

 

設定変更後の動作確認

こんな感じでドメイン名やFQDN、ホスト名が変更されたことが確認できます。

$ hostname
hogehoge.co.jp

$ hostname -s
hogehoge

$ hostname -d
co.jp

$ hostname -f
hogehoge.co.jp

 

余談:ホスト名からFQDNを抜きたい

本当はホスト名にFQDNはつけたくない。
でも「hostname -d」ではドメイン名表示させたいというわがままを突き通したい。

抜け道的に対応。

  • ローカルマシンでのホスト名を「hogehoge」と設定
  • 「/etc/hosts」に自分のIPアドレスをhogehoge.co.jpを登録
  • 外からの通信はDNSサーバに任せるので気にしない

「/etc/hosts」に追記

$ sudo vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.8 hogehoge.co.jp hogehoge

 

これでホスト名の変更とFQDNの設定が完了になります。
「/etc/hosts」はOS再起動等不要で、保存された時点で反映されます。
もし万が一変更されない場合はOS再起動をお試しください。

コメント