Linux システムがホスト名を解決するために DNS サーバーに問い合わせる前に、まずローカルマシンでマッピングを検索します。この最初のチェックは、名前解決プロセスの基本的な部分です。
/etc/hostsの役割
このローカルルックアップの主要なファイルが/etc/hostsです。この単純なテキストファイルには、ホスト名から IP アドレスへの静的なマッピングが含まれています。etc hostsファイルの構造は単純で、各行には IP アドレス、正称ホスト名、およびそのホストのオプションのエイリアスの 3 つのフィールドが含まれます。
etc host linuxファイルの典型的な例を次に示します。
pete@icebox:~$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 icebox
localhostアドレスは、ほぼ常にデフォルトでマッピングされています。このファイルは、Debian hostsを含むほとんどの Linux ディストリビューションで標準的な機能です。
etc hosts linux ファイルの編集
/etc/hostsファイルを手動で編集して、独自のカスタムマッピングを作成できます。楽しい例を試してみましょう。ファイルに次の行を追加します。
123.45.6.7 www.google.com
ファイルを保存した後、Web ブラウザでwww.google.comにアクセスしてみてください。機能しないことがわかります。これは、www.google.comを誤った IP アドレスにマッピングしたためです。システムはまずローカルの/etc/hostsファイルを確認するため、誤ったマッピングを使用し、正しいアドレスを見つけるために DNS サーバーに問い合わせる処理に進みません。これを修正するには、追加した行を削除するだけです。
古いシステムではアクセス制御に/etc/hosts.denyと/etc/hosts.allowを使用していましたが、この方法はほとんど廃止されています。最新のセキュリティプラクティスでは、堅牢な保護のためにファイアウォールルールを設定することに依存しています。
ローカル DNS サーバーの設定
従来、DNS ネームサーバーを指定するために/etc/resolv.confファイルが使用されていました。しかし、システム管理の進歩に伴い、このファイルは手動で管理されなくなることがよくあります。以下の例でわかるように、このファイルは別のサービスによって自動的に生成されます。DNS ネームサーバーマッピングを管理するには、systemd-resolvedやresolvconfなどのツールが現在これを処理しているため、使用しているディストリビューション固有のドキュメントを参照する必要があります。
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1
search localdomain