手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 hosts ファイルの設定 – /etc/hosts と名前解決を確認する

/etc/hosts は、DNS を問い合わせる前にローカルで名前解決したいホスト名を定義するファイルです。Ubuntu 22.04 では、localhost、自身のホスト名、検証用の一時的な名前解決などで使います。

この記事では、Ubuntu 22.04 の /etc/hosts を安全に編集するためのバックアップ、基本的な書き方、getent hostshostname -f による確認方法を扱います。

関連する記事
この記事で確認すること
  • /etc/hosts の役割
  • ホスト名と FQDN の書き方
  • 編集前のバックアップ
  • getent hostshostname -f による確認
  • DNS と hosts の使い分け
参考
書籍
参考書籍

ストーリーで覚える Linux CLI 入門

Linux のコマンドライン操作を基礎から確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

hosts ファイルの役割

/etc/hosts はローカルの静的な名前解決に使います。DNS の代わりにすべてを書き込む場所ではなく、サーバー自身の名前、検証中の一時的な名前、DNS より優先したい名前に限定して使います。

用途
localhost127.0.0.1 localhost
自身のホスト名127.0.1.1 ubuntu-1.example.com ubuntu-1
検証用の固定名192.0.2.10 app.example.com app

現在の内容を確認する

編集前に現在の内容を確認します。空白や順序が名前解決の結果に影響することがあります。

cat /etc/hosts
getent hosts localhost
hostnamectl

バックアップを取得する

hosts ファイルは小さいですが、名前解決に関係するため、編集前に必ずバックアップします。

sudo cp /etc/hosts /etc/hosts.bak.$(date +%Y%m%d%H%M%S)
ls -l /etc/hosts /etc/hosts.bak.* | tail

基本形を作成する

単一サーバーの基本形です。ubuntu-1.example.comubuntu-1 は実際の FQDN と short hostname に置き換えます。

sudo tee /etc/hosts >/dev/null <<'EOF'
127.0.0.1 localhost
127.0.1.1 ubuntu-1.example.com ubuntu-1
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
EOF
cat /etc/hosts

固定アドレスの名前を追加する

検証用に特定の IP アドレスへ名前を付けたい場合は、IP アドレス、FQDN、短い名前の順で書きます。

sudo tee -a /etc/hosts >/dev/null <<'EOF'
192.0.2.10 app-1.example.com app-1
192.0.2.11 db-1.example.com db-1
EOF
tail -n 5 /etc/hosts

名前解決を確認する

ping だけで判断せず、getent hosts で名前解決結果を確認します。

getent hosts ubuntu-1
getent hosts ubuntu-1.example.com
getent hosts app-1
getent hosts app-1.example.com

FQDN を確認する

hostname -f は hosts の書き方や DNS の状態に影響されます。FQDN が必要なサービスを使う場合は、ホスト名設定と合わせて確認します。

hostname
hostname -f
hostnamectl status --no-pager

nsswitch.conf を確認する

Ubuntu 22.04 では /etc/nsswitch.confhosts: 行で名前解決の順序を確認できます。

grep '^hosts:' /etc/nsswitch.conf
getent ahosts ubuntu-1.example.com

DNS と hosts の使い分け

複数台で共通して使う名前は DNS に寄せ、個別サーバーだけで使う一時的な名前は hosts に書くと管理しやすくなります。

  • 一時的な検証名は /etc/hosts に書く
  • 複数台で共有する名前は DNS に登録する
  • IP アドレス変更が多い名前を hosts に固定しすぎない
  • サービス証明書の名前と hosts の名前を混同しない

戻す場合

名前解決に問題が出た場合は、取得済みのバックアップから戻します。バックアップ名は実際のファイル名に置き換えます。

sudo cp /etc/hosts.bak.20260707000000 /etc/hosts
cat /etc/hosts
getent hosts ubuntu-1.example.com

まとめ

Ubuntu 22.04 の /etc/hosts は、ローカルで静的に名前解決したい場合に使います。編集前にバックアップを取り、FQDN、short hostname、固定アドレスの順で意図を分けて書くと確認しやすくなります。

変更後は getent hostshostname -fnsswitch.conf を確認します。共通管理が必要な名前は DNS に寄せ、hosts は局所的な補助として使います。

関連する記事
Ubuntu 22.04 hosts ファイルの設定 – /etc/hosts と名前解決を確認する

コメントを残す

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る