web-dev-qa-db-ja.com

ホスト名と/ etc / hostsを理解する

/ etc/hostnameには、mynameがあります。

/ etc/hostsには、次のようになっています。

127.0.0.1   localhost.localdomain   localhost myname
::1     localhost.localdomain   localhost myname

私は実際にホスト名とは何か、それが何のために使われるのかについて漠然と理解しています。

これらのより正確な質問は、それをよりよく理解するのに役立ちます。

  1. 上記の例で私のホスト名は本当に何ですか? mynameまたは何か他に?代わりにmyname.domain.com/etc/hostnameがあった場合、実際のホスト名はどうなりますか?

  2. この例では、コマンドhostnamemynameを返し、コマンドhostname -flocalhost.localdomainを返します。 /etc/hostsは名前とIPアドレスの間のマッピングにすぎないことを覚えていました。ここでは別の機能を果たしているようです。 fqdnとは何ですか?何に使用されますか?どのように取得されますか?なぜlocalhost.localdomainなのですか?

  3. 代わりにmyname.domain.com/etc/hostnameがあった場合、hostname -fmyname.domain.comを返します。どうして?

  4. これらのファイルでfqdnがドットで終わっていないのはなぜですか?

  5. hostname -ddnsmydomainは同等ですか?

  6. ホスト名(myname)はどのような状況で使用できますか。また、いつfqdn(localhost.localdomain)を使用する必要がありますか?

12
Gradient
  1. /etc/hostnameには、ローカルで実行されるアプリケーションに認識されているマシンの名前が含まれます。 /etc/hostsおよびDNSは、名前をIPアドレスに関連付けます。 mynameは、マシンが自分自身にアクセスできるIPアドレスにマップできますが、127.0.0.1へのマップは美的ではありません。
  2. /etc/hostsではなく、/bin/hostname-fを使用して別の機能を提供します。
  3. /etc/hostsは常識を上書きできるため です。慎重に編集してください。一時的なパッチや実験の後で、ゴミをそこに残さないでください。
  4. 両方のスタイル(⋯.[〜#〜] tld [〜#〜].および⋯.[〜#〜] tld [〜#〜])は受け入れ可能です。前者は明確ですが、後者はユビキタスです。
  5. dnsmydomainが何であるかわからないが、そうではない。 /etc/hostsで何かを探すことは、技術的に「DNS」ではありません。
  6. ポイント1.ホスト名をローカルで実行するアプリケーション用に覚えておいてください。 SMB(samba)などの特殊なネットワークプロトコルの場合も同様です。FQDN(localhost.localdomainなどの偽物やプレースホルダーでない場合)-外部からマシンにアクセスするため。FQDNは、使用されている。
9
Incnis Mrsi

に答えて

IPが動的(DHCP)であり、時々変更される場合はどうなりますか?/etc/hostsのmynameとしてどのアドレスを使用すればよいですか?

まず、/ etc/hostsは、それがインストールされているホストの名前からアドレスへのマッピングの静的な定義であり、名前をIPアドレスに変換するためにそのホストによってのみ使用されることを指摘しておきます。

したがって、考慮すべき2つの視点があります。ホスト 'myname'と他の全員です。

その「myhost」ホストの場合、「localhost」(/ etc/hostsで127.0.0.1として定義されている)を使用して現在のホストを参照するか、「myname」をlocalhostを定義する/ etc/hosts行に追加して、「myname '常にlocalhostにマップします。そのようです:

127.0.0.1 localhost myname

次に、INTERFACEがどのIPアドレスを取得するかは関係ありません。常に機能するアドレスを持っています(追加のボーナスは、「myname」から「myname」に話すためにハードウェアをヒットする必要がないことです)。

ここで、「myhost」が動的IPアドレスを持っているときに他のホストが「myhost」を見つけられるようにするには、DNSを使用する必要があり、DNSサーバーはDHCP割り当てのマッピングを処理する必要があります。 (そうですね、他にも考えられるソリューションは他にもありますが、頭に浮かぶものはすべて、「愚かなものを超えた」カテゴリであるIMHOに当てはまります。まあ、そうですね、ホストにITにDNSを伝えるためにできることはあります。それがどこにあるか、しかしそれはここで完全に異なる質問/回答ストリームに値する質問です、私見)

3
RustyCar

マニュアルを読むように言われたら、私は絶対に嫌いですが、この場合は、ホスト名のmanページを確認してください。すべての質問に答える必要はありません。それは私が説明できるよりはるかによく書かれています。

いくつかの支援を提供するために、質問に当てはまる抜粋の一部を以下に示します。-ホスト名は、/ etc/hostsに表示されるものです。 -返されるFQDNはリゾルバーが返すものに基づいているため、リゾルバーが最初にhostsファイルをチェックしてから必要なDNSクエリを実行するときに/ etc/hostsの値が返されるのはなぜですか。

(私自身のマニュアルページの再読み込みに基づく)ホスト名のマニュアルページで触れられていないのは、ファイルのエントリがドットで終わっていない理由です。

この規則は、DNSレコードを処理するときに使用されます。ホスト名とホストファイルは実際にはDNSレコードではありません。これらのエントリをバインドで構成してDNSルックアップを解決する場合は、ドットを使用することができます(この優れたリソースを確認してください: http://www.zytrax.com/books/dns/apa /dot.html )。

また、これらの値はすべてシステムからブロードキャストされるわけではないことに注意してください。したがって、別のシステムにFQDNに基づいてアクセスする場合、そのシステムはその他のシステムのホストファイルに基づいているか、外部システムがFQDNでDNSルックアップに基づいてホストエントリを欠いているため、システム。

3
User52458

/ etc/hostnameおよび/ etc/hosts単純ですが、それほど単純でもありません...

Debianをすばやくセットアップする方法/etc/hostnameおよび/etc/hosts

1)編集/ etc/hostnameを編集します。

これを設定するには2つの有効な方法があります。

どちらにするか:

  • machine、つまり、このプロセッサの1つのWord名。
    たとえば、「joe」は自分で選択したマシン名である可能性があります。
    これには、/ etc/hostsにエイリアスが必要になることに注意してください。

OR

  • machine.domain.net、つまり完全修飾ドメイン名(FQDN)。
    例: 'joe.xyz.com'。
    (これは、joe.xyz.comからjoeのIPアドレスを指すDNSホスト「A」レコードがあることを前提としています。つまり、joeという名前のマシンにあります。通常、このレコードは、ドメイン名を購入した場所に設定します。詳細は後ほど説明します。)

/ etc/hostnameを設定したら、次のステップは、コマンドhostname --all-fqdnおよびdnsdomainnameを取得することです。次のように、この順序で適切に動作します。

2)編集/ etc/hostsを編集します。

このホストの行[〜#〜] fqdn [〜#〜]の行があります。 「machine.domain.net」、このマシンのIPアドレス(動的IPアドレスサーバーからの可能性があります)を前に付けて、次のようにします。

#   IP           FQDN (CANONICAL_HOSTNAME)   ALIASES
#-------------- --------------------------- ------------------------
192.168.1.14    Joe.xyz.com                 joe
  • まず、ここで大文字でも小文字でもかまいませんに注意してください。 ヒント:ただし、大文字を使用すると、次のステップでどこから来るのかを知ることができます。だから私は[〜#〜] j [〜#〜] oeを大文字にしました。

  • また、for _hostname(つまり/ etc/hostname = 'machine')が正しくFQDNを生成するには、aliasという名前の「machine」が/ etc/hostsに存在している。そのため、エイリアスjoeが存在します。 (ところで、そのエイリアスを使用していなくてもかまいません。)それ以外の場合、このエイリアスは不要であり、使用されません。

  • また、「domain.net」は解決可能である必要があります。つまり、DNSにA.レコードが存在する必要があります。これは「解決可能」と呼ばれるものです(つまり、DNSリゾルバによる)。

)次のコマンドを実行して、これらの新しい設定を/ etc/hostnameおよび/ etc/hostsからカーネルにインストールします。

    $ /etc/init.d/hostname.sh       # Or by rebooting

4)テストホスト名

$ hostname      # Reports the hostname previously read from in /etc/hostname.
joe

OR

$ hostname
joe.xyz.com

チップ:

  • これは、現在編集しているような/ etc/hostnameが現在のものではなく、おそらく再起動の結果として/etc/init.d/hostname.shスクリプトによって以前に読み取られたものであることに注意してください。

  • また、「j」は小文字であることにも注意してください。これは、/ etc/hostsではなく、/ etc/hostnameからのものであることを示しています。

5)FQDNをテスト

$ hostname --all-fqdn   #reports the FQDN(s) matched in /etc/hosts.
Joe.xyz.com             #  It searches /etc/hosts for the joe in /etc/hostname.
                        #  Notice that the 'J' is uppercase.  
                        #     This suggest it came from /etc/hosts.

6)DNSドメイン名をテスト

$ dnsdomainname         #reports the computed DNS doman name    
xyz.com                 #  (i.e. the right most part of the FQDN; 
                        #    the part to the right of the first, left most, dot)
                        #  This is coming from Joe.xyz.com in /hosts, 
                        #    after 'Joe.' is removed.

これで、Webおよび電子メールサーバーのセットアップが簡単になります。

2
Elliptical view