次の質問は似ていますが同じではないため、参照しています。
CentOS 7システムで、ホスト名を変更した後、「hostname -i」から奇妙なIPアドレスを取得しましたが、なぜそうなるのかを理解しようとしています。
次のコマンドでホスト名を変更します。
# hostnamectl set-hostname saturn
# systemctl restart systemd-hostnamed
私の/ etc/hostsファイルは次のことを示しています。
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
以下は私の/etc/nsswistch.confファイルにあります:
hosts: files dns myhostname
私のサーバーのIPアドレスは192.168.1.13ですが、「hostname-i」は奇妙なIPアドレスを返します。
# hostname -i
92.242.140.21
ただし、「hostname-I」は問題ありません。
# hostname -I
192.168.1.13
Hostname-iが92.242.140.21を返すのはなぜですか。 DNSによってシステムに割り当てられたランダムな動的IPですか?誰かが説明できますか?ありがとう!
すべてのネットワークインターフェイスに設定されているすべてのIPアドレスを一覧表示するhostname -I
コマンドとは異なり、hostname -i
コマンドは名前解決を実行します(hostname
のマニュアルページを参照)。
新しく割り当てられたホスト名は/etc/hosts
ファイルを使用して解決できないため、hostname -i
を実行すると、システムの名前リゾルバーが外部DNSサーバーへのDNSクエリを生成します。このサーバー(私はあなたのISPに属していると思います)では、このクエリは空になります(NXDOMAINの結果:つまり、存在しないドメイン)。 ISPはNXDOMAINの結果を受け取るのではなく、Barefruitと提携しているため、クエリに応答してBarefruitのIPアドレスを受け取ります。
$ Dig +short -x 92.242.140.21
unallocated.barefruit.co.uk.
新しいホスト名を/etc/hosts
ファイルに追加すると、hostname -i
コマンドを実行したときに奇妙なBarefruitIPアドレスが消えると思います。そうでない場合は、この回答を無視してかまいません:)
楽しみのために、Dig
コマンドを使用して、さまざまなネームサーバーに問い合わせることができます。応答の違いを確認するには、次の2つのコマンドを実行できます。
$ Dig saturn
$ Dig @8.8.8.8 saturn
1つ目は、システムの事前構成されたDNSサーバーを介した名前解決を引き起こし、BarefruitIPアドレスが返される可能性があります。 2番目のコマンドは Google Public DNS に名前を解決するように要求し、NXDOMAINステータスで戻ります。か否か?
もしそうなら、あなたのISPは DNSハイジャック の疑わしい慣行に関与しているかもしれません、そしてあなたはオプトアウトの可能性があるかどうかを理解するか、DNSサービスプロバイダーを変更したいかもしれません。