Red Hat 7のNetwork Managerでホスト名を変更した後、古い/間違った検索ドメインが使用される問題を発見しました。 /etc/resolv.conf には以下が表示されます。
# Generated by NetworkManager
search **ec2.internal** d.sample.com
nameserver 172.31.0.2
これを入力すると、hostname
希望の結果が表示されます。
[root@testing01 ~]# hostname
testing01.d.sample.com
しかし、変える検索ドメインは追加検索ドメインに新しいドメイン名を追加します。 ec2.internalを完全に削除し、このドメイン名を完全に削除したいと思います。ファイルを直接編集すると、/etc/resolv.conf
ネットワーク管理者によって破損します。/etc/resolv.conf
必須でない限り、Network ManagerまたはNM管理を無効にしたくありません。
それでは、1)NMが私の検索ドメインを復元し続けるのはなぜですか?2)nmcliまたはコマンドラインツールのみを使用してこの問題を解決するにはどうすればよいですか?
答え1
数時間の悩みの終わりに、ついに問題を解決しました。これはDHCPを介して設定されていることがわかりました。
nmcli -f ip4 device show eth0
IP4.ADDRESS[1]: 172.31.53.162/20
IP4.GATEWAY: 172.31.48.1
IP4.DNS[1]: 172.31.0.2
IP4.DOMAIN[1]: ec2.internal
ネットワークインターフェースのipv4.dns-search値をオーバーライドしてIP4.DOMAIN [1]をオーバーライドすることができました。
nmcli connection modify uuid \`nmcli connection show --active | grep 802-3-ethernet | awk '{print $(NF-2)}' | tail -n 1` ipv4.dns-search d.sample.com
またはより簡単に、
nmcli connection modify System\ eth0 ipv4.dns-search "d.sample.com"
その後、NetworkManagerを再起動する必要があります。
systemctl restart NetworkManager.service
また、Amazonインスタンスを使用しているためcloud.cfg ファイルを更新する必要があります。
答え2
/etc/resolv.confファイルは、ネットワークが変更または更新されると常に上書きされます。フォルダ内のファイル/etc/resolvconf/resolv.conf.d/
、つまりhead
ファイルを編集して、記録される内容を制御できます。
/etc/resolvconf/resolv.conf.d/head
ファイルに入れてください。
nameserver 172.31.0.2
search testing01.d.sample.com
/etc/resolv.conf
これで更新されるたびにこれがタイトルになります。
修正する
Redhat ベースのシステムでは、次の手順を使用します。
のネットワークスクリプトを編集します/etc/sysconfig/network-scripts
。検出されたネットワークデバイスのエントリが表示されます(たとえば、ifcfg-eth0はネットワークアダプタを表しますeth0
)。
このファイルを編集( /etc/sysconfig/network-scripts/ifcfg-eth0
):
次の行を追加してください。
DOMAIN=sample.com
また、次のコマンドを実行します。
$ sudo hostnamectl set-hostname --static "testing01.d.sample.com"
変更を適用するには、システムを再起動する必要がある可能性が高くなります。
答え3
"nmcli 接続の変更..." この接続ファイルを変更してもアクティブな接続は変更しない場合:
nmcli cは/etc/NetworkManager/system-connections/the-connection-name[-possible-uuid-too]をロードします。
man nmcli:connect --load filename ...ディスクから1つ以上の接続ファイルをロード/再ロードします。接続ファイルを手動で編集した後、このコマンドを使用すると、NetworkManagerは最新の状態を認識できます。
答え4
追加したいです。最初の誤解はホスト名とは何かです。コマンドラインにこれを入力すると、hostname
サーバー(ホスト)の名前のみが出力されます。 FQDNは、ホスト名とドメインを関連付けたものです。
コマンドがhostname
出力されると、host.domain.com
ホスト名が正しく指定されていません。これが間違った理由は、ホスト名に検索順序を追加するためです。同じドメインで実行する必要があるすべてのソリューションは、次のように終了します。hostname.doimain.com.domain.com
- ファイルの種類は
/etc/hosts
次のとおりです。IP、ホスト名、ホスト名+ホストが属するドメインxx.xx.xx.xx host host.domain.com
- ファイル
/etc/resolve.conf
には以下を含める必要があります。search domain.com
/etc/hostname
ファイルには以下を含める必要があります。host
ファイルのエントリは、/etc/hosts
IPのホスト名とFQDN解決を許可します。 DNS 解決はホストを確認し、検索コマンドを追加して、そのホストがドメインに存在することを確認します。