/etc/nsswitch.confでLinuxの名前解決順序を設定する方法|hostsとDNSの優先順位を変える


この記事の監修:宮崎智広(Linux教育歴15年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, ネットワーク > /etc/nsswitch.confでLinuxの名前解決順序を設定する方法|hostsとDNSの優先順位を変える
ping ホスト名 が通るのに ssh ホスト名 が失敗する」「/etc/hosts に書いたのに反映されない」----こういった名前解決のトラブルは、/etc/nsswitch.conf の設定が影響しているケースがあります。

このファイルでは、ホスト名をIPアドレスに変換する際にどの順番でどの方法を使うかを設定しています。

【この記事でわかること】
・/etc/nsswitch.confのhosts行で名前解決の参照順序を設定できる
・デフォルトはfiles(/etc/hosts)→dns(DNSサーバー)の順で参照される
・LDAPやNISを使う環境では参照項目にldapやnisを追加できる
・現在のLinuxではnsswitch.confが名前解決の設定ファイルとして使われている

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

/etc/nsswitch.confとは

/etc/nsswitch.conf(Name Service Switch)は、名前解決だけでなく、ユーザー情報・グループ情報・サービス情報など、様々なシステム情報の参照先と順序を設定するファイルです。

ホスト名の解決においては、このファイルの「hosts:」行が参照されます。

基本的な設定と確認方法

1. /etc/nsswitch.confの内容を確認する

[root@Tiger ~]# vi /etc/nsswitch.conf # ... #hosts: db files nisplus nis dns hosts: files dns

hosts: 行に注目します。左から順に参照され、最初に名前が解決できた方法が使われます。

2. 各参照項目の意味

files/etc/hosts ファイルを参照する
dns:DNSサーバーを参照する(/etc/resolv.conf で設定)
ldap:LDAPサーバーを参照する
nis:NIS(Network Information Service)を参照する
myhostname:ローカルのホスト名を使用する(systemd-resolved環境)

設定の変更方法

DNSを先に参照したい場合

[root@Tiger ~]# vi /etc/nsswitch.conf # デフォルト(/etc/hostsを優先) hosts: files dns # DNSを先に参照したい場合 hosts: dns files

注意: /etc/hosts よりDNSを優先すると、ローカルで設定した名前解決(テスト環境用のホスト名など)がDNSに負けることがあります。通常は files dns の順序を維持することを推奨します。

変更後の反映について

/etc/nsswitch.conf の変更はほぼ即座に反映されますが、アプリケーションによってはキャッシュを持っている場合があります。確実に反映するには nscd(Name Service Cache Daemon)を再起動します。

# nscdが動いている場合は再起動して確認する [root@Tiger ~]# systemctl restart nscd # 名前解決を確認する [root@Tiger ~]# getent hosts www.example.com

トラブルシュート

/etc/hostsに書いたのに反映されない場合

nsswitch.confhosts: 行で files が先頭に来ているかを確認してください。dns が先頭にある場合、DNSで解決できてしまうと /etc/hosts が参照されません。

本記事のまとめ

/etc/nsswitch.confhosts: 行で名前解決の順序を設定する
・デフォルトは files dns/etc/hosts を先に参照してからDNS)
・LDAPやNISを使う環境では ldapnis を追加できる
・変更は即時反映されるが、nscdが動いている場合は再起動が必要

Linuxのネットワーク設定を体系的に学びたい方へ

名前解決の仕組みを理解することで、DNSトラブルや/etc/hostsの設定が正しく動作しない問題を素早く解決できるようになります。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。


無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録

宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。