現在、CentOS-7.0-1406を実行していますが、ホスト名を正しく設定できないようです。私の知る限り、hostnamectl set-hostnameコマンドを使用してホスト名を設定し、/ etc/hostsにFQDNを書き込む必要があります。私はcentosマシンを持っていて、そのホスト名を "server"に、FQDNを "server.mydomain.com"に設定したいと思います。私はhostnamectlコマンドを実行して/ etc/hostsファイルを編集します:
[root@server ~]# hostnamectl set-hostname server
[root@server ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
{inet_IP_here} server.mydomain.com server
最初はすべて問題ないように見えますが、コンソールはhostnameを実行するとホスト名を表示し、hostname -fを実行するとFQDNを表示します。
[root@server ~]# hostname
server
[root@server ~]# hostname -f
server.mydomain.com
しかし、マシンを再起動して同じコマンドを再度実行すると、FQDNがホスト名として表示され始めます。
[root@server ~]# hostname
server.mydomain.com
私はそれがVPSサーバーであり、ローカル仮想マシンでiを実行すると、そのような問題はありません。また、VPSコントロールパネルにはホスト名のような設定はありません。このような問題を引き起こす理由は何ですか?
Red Hatのドキュメントでは、 マシンの静的ホスト名として完全修飾ドメイン名を使用 を明示的に指示しています。修飾されていない単一の名前でサーバーに名前を付けようとすると、さまざまなサービス(特に電子メール)でさまざまな問題が発生します。
ホスト名は、長さが64文字までの自由形式の文字列にすることができます。ただし、Red Hatは静的および一時的な名前の両方が、_
Host.example.com
_など、DNSでマシンに使用されている完全修飾ドメイン名(FQDN)と一致することをお勧めします。
あなたはすべきです:
_hostnamectl set-hostname server.example.com
_
同じ効果を得るために_/etc/hostname
_を手動で編集することもできます。この場合も、FQDNが含まれている必要があります。
_# cat /etc/hostname
server.example.com
_
CentOS 7でホスト名とFQDNを正しく設定するには、次のように/ etc/hostnameを設定して、短いノード名を含める必要があります。
# echo server > /etc/hostname
そして、resolv.confにドメインエントリを追加する必要があります。
# echo 'domain mydomain.com' >> /etc/resolv.conf
その後、再起動します。
注:resolv.confからのエントリは再起動後に失われる可能性があるため、それを保持するには、次のように、ネットワークスクリプトでDOMAIN =を設定する必要がある場合があります。
echo 'DOMAIN="mydomain.com"' >> /etc/sysconfig/network-scripts/ifcfg-eth0
Eth0を、enp3s0などの適切なインターフェースに置き換えます。