ホスト名 を設定するには、次のように、ホスト名のみを使用してくださいhostnamectl
。
hostnamectl set-hostname nodename
(DNS)ドメイン名編集/etc/hosts
ファイルを設定し、次のことを確認するには:
- そこに線
<machine's primary, non-loopback IP address> <hostname>.<domainname> <hostname>
があります
- の他の行はありませんが
<some IP> <hostname>
、これには127.0.0.1
および::1
(IPv6)アドレスを持つ行が含まれます。
NISを使用している場合を除き(none)
、domainname
コマンドの実行時の正しい出力であることに注意してください。
DNSドメイン名が正しく設定されているかどうかを確認するには、dnsdomainname
コマンドを使用してhostname
vs hostname -f
(FQDN)の出力を確認します。
NISとDNSドメイン
この問題に最初に出会ったとき、私は混乱しました。このdomainname
コマンドは、インターネットの人気よりも前のようです。DNSドメイン名の代わりに、システムのNIS(ネットワーク情報サービス)別名YP(Yellow Pages)ドメイン名(マスターNISサーバーによって提供されるサービスを持つコンピューターのグループ)を表示または設定します。このコマンドは、getdomainname(2)
標準ライブラリ関数によって返された名前を単に表示します。(nisdomainname
およびypdomainname
は、このコマンドの代替名です。)
FQDNまたはDNSドメイン名を表示する
DNS(インターネット)ドメイン名を確認するには、dnsdomainname
コマンドを実行するかhostname
、-d, --domain
オプションを使用する必要があります。(このdnsdomainname
コマンドはDNSドメイン名を設定するために使用できないことに注意してください-それは表示するためにのみ使用されます。)
システムのFQDN(完全修飾ドメイン名)を表示するにhostname
は、-f, --fqdn, --long
オプションを指定して実行します(同様に、このコマンドを使用してドメイン名部分を設定することはできません)。
上記のコマンドは、システムのリゾルバー(gethostbyname(3)
POSIXで指定された標準ライブラリの関数によって実装されます)を使用して、DNSドメイン名とFQDNを決定します。
名前解決
RHEL 7などの最新のオペレーティングシステムhosts
で/etc/nsswitch.conf
は、エントリはホスト名の解決に使用されます。CentOS 7マシンでは、この行は次のように構成されています(CentOS 7のデフォルト)。
hosts: files dns
これは、リゾルバー関数がホスト名またはIPアドレスを検索するときに、最初に/etc/hosts
ファイル内のエントリをチェックし、次ににリストされているDNSサーバーを試すことを意味し/etc/resolv.conf
ます。
hostname -f
ホストのFQDNを取得するために実行すると、リゾルバー関数はシステムのホスト名のFQDNを取得しようとします。ホストが/etc/hosts
ファイルまたは関連するDNSサーバーにリストされていない場合、試行は失敗し、そのことがhostname
報告されName or service not known
ます。
場合はhostname -d
、ドメイン名を取得するために実行され、同じ操作が行われ、ドメイン名の部分は、ホスト名部分とFQDNから最初のドットをストリッピングすることにより決定されます。
ドメイン名を構成する
1.関連するDNSネームサーバーを更新する
私の場合、ローカルLANのDNSサーバーに新しいCentOS 7マシンのエントリを既に追加していたので、or オプションで/etc/hosts
実行hostname
したときにファイルにFQDNが見つからなかった場合、ローカルDNSサービスは次のことができました。新しいホスト名のFQDNを完全に解決します。-d
-f
2. /etc/hosts
ファイルを使用する
DNSサーバーが構成されていない場合は、完全修飾ドメイン名を/etc/hosts
ファイルで指定できます。これを行う最も一般的な方法は、システムのプライマリIPアドレスを指定し、その後にFQDNと短いホスト名を指定することです。例えば、
172.22.0.9 nodename.domainname nodename
hostname
マニュアルページからの抜粋
hostname
またはでFQDNを変更することはできませんdnsdomainname
。
FQDNの推奨される設定方法は、/etc/hosts,
DNSまたはNIS を使用して、ホスト名を完全修飾名のエイリアスにすることです。たとえば、ホスト名が「ursula」の場合、次の行が表示される場合が/etc/hosts
あります。
27.0.1.1 ursula.example.com ursula
技術的には:FQDNは、gethostname(2)によって返されるホスト名に対してgetaddrinfo(3)が返す名前です。DNSドメイン名は、最初のドットの後の部分です。
そのため、リゾルバーの構成(通常は/etc/host.conf
)によって、変更方法に依存します
。通常、hostsファイルはDNSまたはNISの前に解析されるため、でFQDNを変更するのが最も一般的
/etc/hosts
です。
hostname -f
コマンドは私のCentOS vmでは動作しません。