以下のコマンドを実行すると、奇妙なIPアドレスが表示されます。
hostname -i
198.105.244.11 198.105.254.11
私のホストファイルエントリはデフォルト設定にあります。ここに私の/ etc / hostsファイルエントリの内容があります。
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
このコンピュータの実際のIPは次のとおりです。192.168.2.31
/etc/hosts
ファイルに次の項目を追加すると、
192.168.2.31 myhost
期待した結果を得ることもできます。
hostname -i
192.168.2.31
しかし、なぜ実行すると他のIP範囲が表示されますかhostname -i
?
修正する:
ip r
192.168.2.0/24 dev eth0 proto kernel scope link src 192.168.2.31
169.254.0.0/16 dev eth0 scope link metric 1002
default via 192.168.2.1 dev eth0
ifconfig eth0
eth0 Link encap:Ethernet HWaddr ##removed##
inet addr:192.168.2.31 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feca:24c2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2153703 errors:0 dropped:0 overruns:0 frame:0
TX packets:612859 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:189727756 (180.9 MiB) TX bytes:761146814 (725.8 MiB)
(Cent 6.4を使用)
答え1
このホスト名のDNSサーバーに古いDNSレコードがある可能性があります。 digを使用してこれを確認できます。
dig <your.host.name>
答え2
これはDNSサーバーのチートのように見えます。不明なホスト名/ FQDNを照会すると、取得した2つのIPアドレスが正確に返されます。
$ nslookup 不明な名前 4.2.2.2 サーバー:4.2.2.2 住所: 4.2.2.2#53 信頼できない答え: 名前:不明な名前 住所:198.105.244.11 名前:不明な名前 住所:198.105.254.11
サーバーは最初にDNSを照会し、次に/ etc / hostsファイルを見つけるように構成されているため、DNSサーバーがホスト名を解決すると、後者に入力した内容はすべて無視されます。問題は、ユーザーが取得する静的IPアドレスの未知の名前を「確認」してユーザーをだましていることです。
この問題を解決するには、ファイルを編集してこの行の前に/etc/nsswitch.conf
置きます。files
dns
hosts