ホスト名の代わりに/ etc / hostnameでFQDNを使用する必要がありますか?


10

manページを読んでいるように、ホスト名(ドメイン名なし)をに置くことをお勧めします/etc/hostname。たとえば、host.domainsub.domaintldではなくhost です。 しかし、私が知っているように、一部のソフトウェアはにあることFQDNに依存してい/etc/hostnameます。

/etc/hostname Debian / Ubuntuマシンでは何を指定すべきですか?

FQDNでない場合、代わりにFQDNを指定する必要がありますか?

質問は少し古いですが、明確な答えは見つかりませんでした。ホスト名を言う人もいれば、FQDNを言う人もいます。ありがとう。


1
FQDNを/ etc / hostnameファイルに入れると言っている人をどこで見つけていますか?そのファイルはシステムのホスト名専用です。
Terrance、2016

それについての資料をインターネットで読むとき、どこかで会った。そして、どこで彼のFQDNを指定する必要がありますか?
Bulat M. 2016

@Terrance、実際、私は現場の経験豊富な人々から回答を得て、最初から「正しい」方法を彼らに示したいと思っています。答えとして書いてください。そして、/ etc / hostnameがないディストリビューションで何をすべきか?
Bulat M. 2016

回答:


6

/ etc / hostnameファイルでは、ホスト名のみを使用します。設定できるFQDN:/ etc / hostsは次のようになります。

127.0.1.1        thishost.mydomain.org    thishost

ホストファイルのマニュアルによると。

http://man7.org/linux/man-pages/man5/hosts.5.html


1
修正:ありがとうございます。ただし、/ etc / hostnameでFQDNを指定する/指定しないことの長所と短所について知っておく必要があります。私はあなたの解決策について知っています:これは、FQDNを何かに解決する(どのアドレスでもかまいません)ように動作させたいプログラムのスタブです。
Bulat M. 2016

11

修正された回答:

ホスト自体は実際のFQDNを処理しません。これはDNSによって処理されます。FQDN(完全修飾ドメイン名)は、名前をIPアドレスに変換するDNSによって処理されます。この/etc/hostsファイルを使用すると、基本的にDNSサーバーを上書きします。コンピュータは/etc/hostsまずファイルを調べて、ホスト名からIPアドレスへのエントリが定義されているかどうかを確認します。のエントリは/etc/hosts次のようになります。

127.0.0.1 localhost
127.0.1.1 terrance-ubuntu.local terrance-ubuntu

これらのエントリはディストリビューション固有ではありません。 すべてのOSはこれらの行に同じフォーマットを使用します。hostsファイルの場所が変わるだけです。Linuxでは通常、/etc/フォルダーにありますが、Windowsでは通常、C:\Windows\System32\drivers\etc\フォルダーにあります。

そのラインアップterrance-ubuntu.localを分解すると、アプリケーション(私のコンピューターを離れないことをアプリケーションが認識できるようにDNSを上書きするためのFQDN自体)とterrance-ubuntu、アプリケーションが私のコンピューターを離れないことを認識できるようにホスト名であるの両方を割り当てていることがわかります127.0.0.1(localhost)。システムのホスト名をに割り当てても127.0.1.1、ネットワーク上でホストを見つける他のコンピュータには影響しません。DNSが適切に機能している場合、ホスト名はと表示され10.0.0.100ます。使用する理由は127.0.1.1、私のシステムがネットワーク上のどこかにないことがわかるため、アプリケーションがシステムをすばやく見つけるためです。私の.localFQDNである実際のホスト名、.local 実際には、ルーターを介してセットアップしたドメインであり、ネットワーク上の別のDNSサーバーでもあります。

ここで、ローカルネットワーク上のDNSサービスがホスト名またはFQDNをIPアドレスに割り当てていないとしますが、ローカルネットワーク上のホストのIPアドレスはわかっています。次に、そのホストを/etc/hostsファイルに割り当てて、アクセスするたびにホストのIPアドレスを入力する必要がないようにします。ホストは、ツールサーバー、プリンター、またはその他のネットワーク接続システムである可能性があります。通常どおり/etc/hostsファイルにエントリを追加します。

たとえば、ネットワーク接続されたプリンターを使用します。静的IPは10.0.0.253です。名前はわかりませんが。このため、私はそれを呼び出したいと思いますhp_printer。IPとそのホスト名をpingしてから、に追加し/etc/hostsます。

terrance@terrance-ubuntu:~$ ping -c 2 10.0.0.253
PING 10.0.0.253 (10.0.0.253) 56(84) bytes of data.
64 bytes from 10.0.0.253: icmp_seq=1 ttl=255 time=0.326 ms
64 bytes from 10.0.0.253: icmp_seq=2 ttl=255 time=0.334 ms

terrance@terrance-ubuntu:~$ ping -c 2 hp_printer
ping: unknown host hp_printer

terrance@terrance-ubuntu:~$ sudo vi /etc/hosts
10.0.0.253 hp_printer.local hp_printer

terrance@terrance-ubuntu:~$ ping -c 2 hp_printer
PING hp_printer.local (10.0.0.253) 56(84) bytes of data.
64 bytes from hp_printer.local (10.0.0.253): icmp_seq=1 ttl=255 time=0.334 ms
64 bytes from hp_printer.local (10.0.0.253): icmp_seq=2 ttl=255 time=0.303 ms

これで、覚えやすいIPアドレスの代わりに、指定した名前でプリンター設定のWebページにアクセスすることもできます。

ここに画像の説明を入力してください

あなたの/etc/resolv.confファイルは、ヘルプ検索のホスト名にDNSで使用されます。リゾルバーの設定ファイルです。ホストを探しているときにFQDNを常に指定する必要がないように、検索ドメインを提供します。また、ローカルネットワークのDNSまたはネームサーバーのIPアドレスも提供します。search下の行localは私のドメイン名である名前を示しています。

terrance@terrance-ubuntu:~$ cat /etc/resolv.conf 
# 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 10.0.0.1
search local

うまくいけば、これはDNSとFQDNがどのように機能するかをよりよく理解するのに役立ちます。


/ etc / hostsのFQDNを127.0.1.1にマッピングする理由
Bulat M. 2016

1
@BulatM。私の改訂された答えを見てください。
Terrance、2016

/etc/resolv.confの検索キーワードとドメインキーワードの違いを説明していただけませんか?resolv.confのmanページを読んでいますが、まだはっきりしていません。
Bulat M.16年

そして、それらの両方を含めることができますか?有用な有効なケースを答えてください。ありがとう。
Bulat M. 2016

1
@BulatM。私の回答のリンクをクリックすると、物事についての詳細情報が表示されます。en.wikipedia.org/wiki/Resolv.confのように、より多くの情報を提供します。私はあなたを教えるためではなく、助けるためにここにいます。これはすべてボランティアなので給料はもらえませんので、自分で勉強してみてください。
Terrance、

4

マンページでhostname(1)これについて説明しています(太字の段落は私が強調しています):

FQDN
   システムのFQDN(完全修飾ドメイン名)は、レゾルバ(3)のようなホスト名に戻り、ursula.example.com。
   通常、ホスト名の後にDNSドメイン名が続きます(一部
   最初のドットの後)。ホスト名--fqdnを使用してFQDNを確認する  か、dnsdomainname 
   を使用したドメイン名。

   FQDNをホスト名またはdnsdomainnameで変更することはできません。

   FQDNを設定するための推奨される方法は、ホスト名を
   / etc / hosts、DNS、またはNISを使用した完全修飾名のエイリアス。
   たとえば、ホスト名が「ursula」の場合、次の行が含まれる可能性があります。
   読み取る/ etc / hosts

          127.0.1.1 ursula.example.com ursula

   技術的には、FQDNはgetaddrinfo(3)がホストに返す名前です
   gethostname(2)が返す名前。DNSドメイン名は後の部分です
   最初のドット。

   したがって、それはリゾルバーの構成に依存します(通常は
   /etc/host.conf)変更方法 通常、hostsファイルは解析されます
   DNSまたはNISの前にあるため、FQDNを
   / etc / hosts。

また、インストール中にFQDNをホスト名として指定する/etc/hostnameと、最初のコンポーネントのみが書き込まれ、FQDNがに保持され/etc/hostsます。

したがって、この場合は、インストーラーにその機能を実行させるだけです。


それは(/ etc / hostsに127.0.1.1 ursula.example.com ursulaを含む)Debian \ Ubuntu固有ですか、それとも他のdistrにも同様に適用できますか?
Bulat M. 2016

1
Dunno他のディストリビューションについて。ArchとCent OSでも同じことができます。他のディストリビューションについての質問はUnix&Linuxで尋ねるべきです。
muru 16
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.