/etc/hosts とは何ですか? なぜ使用するのですか?
ネットワーク トラフィックをホストに送信するには、そのホストの数値のインターネット プロトコル (IP) アドレスを知る必要があります。 IP アドレスは、伝統的に xxx.xxx.xxx.xxx のように記述されます。各 xxx は、IPv4 ネットワーク アドレスの 0 ~ 255 の値を表します。コンピュータはこれらのアドレスを必要としますが、人間は数値を覚えるのが難しいと感じています。ドメイン ネーム サービス (DNS) は、1 つ以上の英数字の名前を数値の IP アドレスに関連付けるメカニズムを提供します。 Linux システムでは、これらの読み取り可能な名前は、glibc RPM パッケージの一部として提供される libresolve.so ファイルに含まれるリゾルバー ライブラリによって、対応する数値の IP に変換されます。名前を取得するために数値の IP アドレスを検索する必要があるプログラムは、このライブラリを呼び出します。
ホスト名とその IP アドレスは、ローカル ファイル、リモート DNS サーバー、NIS+ サーバーなど、さまざまな場所にある可能性があります。これらのリソースが検索される順序は、ホストによって異なります:/etc/nsswitch.conf のエントリ ファイル。通常、この行は次のようになります:
# vi /etc/nsswitch.conf hosts: files dns
これにより、リゾルバ ライブラリは最初にローカルの /etc/hosts ファイルを調べます。そこにホスト名が見つからない場合は、/etc/resolv.conf で識別されるリモート DNS ネーム サーバーを参照してください。 ファイル。
Linux は bind を提供します 管理ドメインが独自の DNS サービスを構成および維持できるようにする RPM パッケージですが、多くの場合、ローカル ネットワークのサイズは数個のホストにすぎず、DNS サービスを維持する努力を正当化することは正当化されません。
/etc/hosts ファイルの形式
/etc/hosts ファイルは通常のテキスト ファイルです。次の 2 種類の行が許可されます:
<オール>必要に応じて、行が混在する場合があります。コメントはハッシュ記号 (#) で始まります ) そして、行末まで続けます。
ホスト名と IP アドレスの関連付け
ホストごとに、次の情報を含む 1 行が必要です:
IP_address canonical_hostname [aliases ...]
エントリのフィールドは空白 (スペースまたはタブ) で区切られます。最初のフィールドは、このエントリのすべてのホスト名に使用される数値の IP アドレスです。要件に応じて、IPv4 アドレス (10.1.2.3)、IPv6 アドレス (2001:0db8:0000:0000:0000:0000:1428:57ab)、または IPv6 省略形 (::1) を使用できます。
IP アドレスの後に続くトークンは、その IP アドレスに関連付けられたローカルで既知のホスト名を指定します。慣例により、IP アドレスの後の最初の名前は正規または完全修飾ドメイン名です。正規名の例は、server.example.com です。これはホストの正式名称です。
IP アドレスに定義された残りの名前は、正式なホスト名のエイリアスまたは代替名です。たとえば、server.example.com に割り当てられた職務の 1 つが企業の FTP サイトであるとします。その場合、適切なエイリアスは myftp.example.com であり、この名前を正規名の後に /etc/hosts エントリに追加できます。多くの場合、エイリアスは単にホスト名であり、ドメイン サフィックスはありません。例:
192.168.10.12 server.example.com myftp.example.com myhost myftp
行の最初の定義として正規のホスト名をリストする利点は、IP からホスト名への変換 (リバース DNS ルックアップと同様) では、通常、最初に見つかった名前のみが表示されることです。慣例では、これに正規名を使用します。この例では、コマンド:
$ ping myftp PING myhost.example.com (192.168.10.12) 56(84) bytes of data. 64 bytes from myhost.example.com (192.168.10.12): icmp_seq=1 ttl=64 time=0.023 ms 64 bytes from myhost.example.com (192.168.10.12): icmp_seq=2 ttl=64 time=0.028 ms 64 bytes from myhost.example.com (192.168.10.12): icmp_seq=3 ttl=64 time=0.028 ms
myftp に ping を実行しましたが、結果はホスト myhost からのものであることに注意してください。これは、実際のホストではなく、エイリアスをアドレス指定しているという信頼できるヒントです。