突然、ローカルホストのサブドメインが機能していないことに気がつきました。/etc/hosts
ファイルは次のようになります。
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
127.0.0.1 develop2win.de
127.0.0.1 develop2win.de
127.0.0.1 alomvar.localhost
次のように 1 つの IP のすべてのホスト名を 1 行に入力しても機能しません。
127.0.0.1 localhost alomvar.localhost develop2win.de www.develop2win.de
また、次のコマンドを使用して、OS X 10.9 Mavericks に適した DNS リゾルバを再起動しました。
dscacheutil -flushcache; sudo killall -HUP mDNSResponder
しかし、nslookup alomvar.localhost
端末で発行すると次のようになります。
Server: 192.168.178.1
Address: 192.168.178.1#53
** server can't find alomvar.localhost: NXDOMAIN
これは、私のローカル ネットワークにあるルーターの IP です。この場合、localhost ホスト ファイルは解決のためにスキップされているようです。以前は、プロセスはdevelop2win.de
正常に解決され、ローカルの Apache 仮想ホストを指していました。しかし、今ではそれも機能せず、上記と同じエラーが発生します (WTF?)。ただし、プレーン検索は引き続きlocalhost
正常に機能します。
Server: 192.168.178.1
Address: 192.168.178.1#53
Name: localhost
Address: 127.0.0.1
アップデート1: 再起動もしましたが、何も変わりませんでした。DNS クエリがローカルで解決されず、ルーターに送信されているようです。
何が足りないのでしょうか? 他の誰かが OS X Mavericks で localhost のサブドメインを設定しようとしたのでしょうか? これは Apache に関することではなく、DNS に関することだけです。
がここにありますシステム環境設定の DNS 設定のスクリーンショットちなみに、画像を埋め込むにはまだ評判が足りないので、外部サイトへのリンクです。
アップデート2: dave_thompson_085 が指摘したように、ターミナルでコマンドを使用してチェックを実行しました。ローカルホストの場合は正常に動作しhost
ます。ping
$ host localhost
localhost has address 127.0.0.1
ただし、サブドメインの場合はそうではありません。
$ host alomvar.localhost
Host alomvar.localhost not found: 3(NXDOMAIN)
localhost への ping も正常に動作します:
$ ping localhost
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.048 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.078 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.085 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.076 ms
^C
--- localhost ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.048/0.072/0.085/0.014 ms
そして、イライラさせられることに、サブドメインでも同様に機能します。
$ ping alomvar.localhost
PING alomvar.localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.039 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.042 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.075 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.091 ms
^C
--- alomvar.localhost ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.039/0.062/0.091/0.022 ms
サブドメインを解決せずに、問題なく ping を実行するにはどうすればよいですか? インターネットで他の人が実行した方法を見ると、どうやらこのように動作するはずです。私はネットワークに詳しいわけではありません。おそらく、これを設定するために直接必要なもの以外の何かを壊してしまったのでしょう。
ローカルホストとサブドメインでも実行しましたdig
。出力はかなり長く、この質問はすでに十分に雑然としていると思います。このファイルdig出力用。
アップデート3: Mac をネットワークから切断すると (イーサネット ネットワーク アダプターを無効にすると) dig
、host
localhost の検索も失敗します。
アップデート4: ブラウザ内で、Apache 仮想ホストがその名前のホストをリッスンしていることを示すために機能することがわかりました。これは問題の解決策ではありませんが、私が生活して作業できる状況です。しかし、私はまだこの問題を解決することに興味があります。さらに何かアイデアをお持ちの方がいらっしゃいましたら、教えてください。
答え1
dig
、、host
およびnslookup
すべてはシステムの名前解決をバイパスし、DNSに直接問い合わせます。したがって、/etc/hostsで定義された名前は表示されません(ただし、またDNS サービスで定義されているもの)、または任意の mDNS (別名 Bonjour) .local 名、またはディレクトリ サービス内のコンピューター エントリ、または...
システム リゾルバが認識するものを確認したい場合、最適なツールは ですdscacheutil
。残念ながら、その構文はかなり扱いにくい ( dscacheutil -q host -a name alomvar.localhost
) ため、システムの名前リゾルバを使用する のようなものを使用する方が通常は高速ですping
。ただし、完全な詳細 (名前が複数のアドレスに解決されるかどうかなど) が必要な場合は、 を使用するのdscacheutil
が最適です。