私はいくつかのAmazonEC2サーバーを持っており、Chefを使用して構成を管理しています。デフォルトのbashプロンプトがより役立つように、ホスト名を設定したいと思います。
新しいサーバーを起動した直後は、次のように設定されています。
root@ip-10-123-123-123
これらのボックスでUbuntu 12を使用しているので、対応するmanページで hostname を調べました。設定方法に関する優れた情報がたくさんあり、ホスト名とfqdnについて少し説明していますが、私が知りたいことは実際にはわかりません。
ホスト名を設定するとどのような影響がありますか?
ホスト名の設定は、ほとんどの場合、ユーザーとシステム管理者にとって便利な項目であり、ボックスに顔/ニース名を付けて、内部でより簡単に認識できるようにします(コマンドプロンプト、送信される電子メール、など)、しかし私は前向きではありません。
/etc/hosts
ファイルにホスト名が表示されません。これは、変更しても何も悪影響を及ぼさないことを示す良い兆候のようです。
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
私は正しい軌道に乗っていますか?ホスト名を設定するとどのような影響がありますか?
更新
Ec2インスタンスのホスト名をip-10-123-123-123
からwebserver
に変更しようとしましたが、hostname --fqdn
は機能しなくなりました。元に戻すと、問題なく動作します。 Apacheは、起動時にfqdnを確実に判別できないというエラーも表示します。 fqdnをめちゃくちゃにせずにホスト名を設定する方法が必要だと思います。
ホスト名がDNSまたは/ etc/hostsのいずれかを介して解決可能であることを追加したかっただけです。そうでない場合、多くのツールでは、ホスト名の検索に失敗したために長い遅延が発生する可能性があります。多くのGUIプログラムでこの問題が発生しました。
ホスト名(hostname
コマンドによって設定および表示され、通常は/etc/hostname
に格納されます)は、ローカルアプリケーションによって使用されます。他のマシンには認識されておらず、ホストへの接続には使用できません。ホスト名は通常シェルプロンプトに表示され、さまざまなアプリケーションが、たとえばコミットを行う際のバージョン管理ソフトウェアなどのログ記録の目的で使用する場合があります。
ホスト名と、他のマシンがマシンを指定するために使用する可能性のある名前との間に技術的な関係はありません。 [〜#〜] dns [〜#〜] は、インターネットコンテキスト(より正確にはネットワークインターフェイス)でマシンに名前を付けるために通常使用されるものです。ホスト名が、世界中のほとんどの人が見るマシンのネットワークインターフェースのDNS名の最初のコンポーネントと同一である場合、それは良い考えです。たとえば、サーバーがeth0
イーサネットインターフェースを介して世界の他の地域に接続されており、eth0
のIPアドレスがfoo.example.com
という名前である場合、選択することをお勧めしますホスト名としてfoo
。その場合、foo.example.com
はマシンの [〜#〜] fqdn [〜#〜] (完全修飾ドメイン名)と呼ばれることがよくあります。しかし、それらを一致させないままにすることは自由です。不一致は管理者を混乱させる可能性がありますが、ソフトウェアには関係ありません。
一部のネットワークプロトコルでは、ホスト名を使用してホストを識別できます。その場合は、ホストで実行されているローカルプロセスから送信する必要があります。たとえば、一部の設定では、 [〜#〜] dhcp [〜#〜] クライアントがホスト名をDHCPサーバーに送信してIPアドレスを取得します。 DHCPサーバーは、要求されたホスト名を使用して、クライアントに関連付けるIPアドレスを決定できます。このような設定では、ホスト名がDNS名と一致することが必須です。
関連: Emacsでホスト名が異なるのはなぜですか? ; ホスト名を使用してLANからマシンにアクセスできるようにする方法