web-dev-qa-db-ja.com

再起動時に一時的なホスト名でホスト名を上書きしない

私のサーバーはCentOS 7.1です。再起動後、ホスト名は一時的なホスト名(mail)で上書きされ、それを回避する方法が見つかりません。多分AutoDNSとMXレコードmailが原因ですか?

  • /etc/hostnameには正しい値が含まれています
  • hostnamectl --transient set-hostname my.desired.nameは機能していますが、次の再起動までのみです

したがって、再起動後:

  • hostnamectl statusは正しい静的ホスト名を示していますが、一時的なホスト名(mail)が間違っています。
  • hostname -sまたはhostname -fは、誤ったホスト名を示します。

ファイル/etc/sysconfig/networkは「anacondaによって」上書きされ、HOSTNAME="mail"という行があります。このファイルを編集して正しい名前を設定しようとしましたが、再起動後に上書きされます。

再起動後に一時的なホスト名がmailに設定されないようにするにはどうすればよいですか?


編集:
すでにDHCP_HOSTNAME="my.desired.name"を/ etc/sysconfig/network-scripts/ifcfg-e .....に追加しようとしましたが、成功しませんでした(行は再起動後に削除されました)。
そして、再起動時にhostnamectl set-hostname "" --transient(一時的なものを静的ホスト名の値に設定します)の実行を追加しようとしましたが、アクティブ化された/etc/rc.localおよびchkconfigを使用したサービスとして失敗しましたon(#chkconfig:-11 91を使用して、他のすべてのサービスの後に実行されるようにします)。

さらなる提案は大歓迎です。

5
hellcode

ついにできた。
ホスティングプロバイダー(ホストヨーロッパ)には、各サーバー(仮想ルートサーバー)のコントロールパネルにオプションがあります。 「ホスト名/ RDNS」ページには、「ホスト名:」という入力フィールドがあります。正しい値に変更しましたが、期待どおりに動作します。

1
hellcode

一時的なホスト名は、起動時に静的なホスト名に初期化されますが、DHCPまたはmDNSによって変更できます。

DHCP

DHCPを使用している場合は、ネットワークデバイスの構成で間違ったホスト名が設定されていないことを確認する必要があります。 ip addr showを実行して、使用しているネットワークデバイスを確認します。次に、適切な構成スクリプトを編集します。例えば。ネットワークインターフェイスがeth0の場合は、構成ファイル/etc/sysconfig/network-scripts/ifcfg-eth0を編集する必要があります。

ifcfgファイルを使用したネットワークインターフェイスの構成 に関するRed Hatのドキュメントから、次のオプションがあります。

別のホスト名をDHCPサーバーに送信するようにインターフェースを構成します。

DHCP_HOSTNAME=hostname

このスクリプトでホスト名mailがシステムに設定されていないことを確認してください。

それが問題でない場合は、ローカルDHCPサーバーがホスト名をmailとして設定するように構成されていないことを確認する必要があります。ローカルエリアネットワークのDNS/DHCPでホストをmailとして設定しているネットワーク管理者がいる場合は、それらに相談する必要があります。ベストプラクティスは、役割に基づいていない名前でホストを構成してから、関連するサーバーのエイリアスとしてDNS CNAMESを構成することです。

DHCPが問題の原因であり、上記の提案が役に立たない場合、他のオプションは、静的IPアドレスを使用するようにネットワークインターフェイスを構成することです。

3

久しぶりのことですが、なぜそれが起こるのかについての答えを探している人のために:一部のプロバイダー(ISP、会社のVPNなど)は、DHCPを介してIPを要求するたびに、「一時的なホスト名」をホストに送り返します。マシンの構成に応じて、現在のマシンのホスト名として設定されます

私の問題(および私がここにたどり着いた方法)は、ホスト名をデフォルトのlocalhostとして、hostnamectlのマニュアルページに従って設定したことです。

このツールは3つの異なるホスト名を区別します。すべての種類の特殊文字を含む可能性のある高レベルの「きれいな」ホスト名(「Lennart's Laptop」など)、ブート時にカーネルのホスト名を初期化するために使用される静的ホスト名(たとえば「lennarts-laptop」 ")、およびネットワーク構成から受信したデフォルトの一時的なホスト名。静的ホスト名が設定されていて、それが有効な場合(localhost以外)、一時的なホスト名は使用されません。

したがって、解決策はホスト名がとして設定されないようにすることですlocalhost

別の解決策 は、_/etc/dhcp/dhclient.conf_(および_Host-name_)をrequestプロパティから削除して、ホスト名を要求しないように_domain-name_のdhcp構成を作成することです

$ vi /etc/sysconfig/network-scripts/ifcfg-eth0

$ vi /etc/sysconfig/network

HOSTNAME="hostname<FQDN>"
DHCP_HOSTNAME="hostname<FQDN>"

$ vi /etc/rc.local

#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local
hostnamectl --transient set-hostname "hostname"

#exit vi <:wq>

$ chmod +x /etc/rc.d/rc.local <This will make the file unchanged even after reboot>

$ Reboot

*You are ready to go the Cpanel installation for CentOS7 :)*
0