web-dev-qa-db-ja.com

Mac OSXServerでローカルホストを解決できません

OS X Server 10.5を実行しているサーバーがあり、ローカルホストを127.0.0.1に解決できません。

Pingを実行しようとすると、次のようになります。

> ping localhost 
 ping:localhostを解決できません:不明なホスト

SSHブラウザとWebブラウザは同様の結果を取得します(不明なホスト)。 127.0.0.1またはLANに割り当てられたIPアドレスを使用しようとすると、上記のすべてが機能します。

/ etc/hostsファイルの内容は次のとおりです。

> cat /etc/hosts
##
#ホストデータベース
#
#localhostは、ループバックインターフェイスの設定に使用されます
#システムの起動時。このエントリは変更しないでください。
 ## 
 127.0.0.1localhost 
 255.255.255.255 Broadcasthost 
 :: 1 localhost 
 fe80 :: 1% lo0 localhost 

ローカルDNSサービスを実行していません。

なぜこれが起こっているのか、またはどうすれば修正できるのか、誰かが知っていますか?

9
iainbeeston

結局、それはちょうど再び働き始めました。サーバー上でいくつかの非正統的な(そして不要な)DNS構成を見つけ、それを本来あるべきものに変更しました。おそらくそれで問題は解決しましたか?当時、ローカルホストの問題を解決しようとしていなかったので、前後にローカルホストをテストしなかったので、確信が持てません。

0
iainbeeston

Mountain Lion(10.8.2)でも同じ問題が発生しました。 [セキュリティとプライバシー]-> [ファイアウォール]-> [ファイアウォールオプション]で[ステルスモード]を無効にすることで解決しました。

6
Kevin

これはおそらく元の質問とは関係ありませんが、Mac OS X LionのDNSルックアップに影響を与える可能性のある別の問題があります。具体的には、localhostまたは/etc/hostsにあるその他のエントリです。

どうやら/etc/hostsファイルはファイルの行ごとに複数のドメインをサポートしなくなったため、すべてのレコードに独自の行が必要です。

127.0.0.1 localhost
127.0.0.1 some.site.local
127.0.0.1 some.site.dev

Justin Carmonyのブログ でこれを見つけました。彼は、/etc/hostsを使用している場合、他の「興味深い」動作について説明します。それでも問題が解決しない場合は、読んでください。

3
pix0r

私のコンピューター(同じ症状)で私の/etc/hostsファイルはMacintoshの行末を使用するように変更されていました(CR-0x13)Unixの行末の代わりに(LF —0x10)。それ以外の場合、ファイルは正しかった。

私の解決策は:

brew install dos2unix
Sudo dos2unix -c mac /etc/hosts
1
Phrogz

エンコーディングが問題になる可能性があります。SublimeTextを使用して/ etc/hostsを編集したところ、viを使用して再編集すると問題が解決しました。 catが内容を出力することを確認してください。

1
Issam Zoli

少し遅いのはわかっていますが、私の場合、行末をUNIXに変更し、タブをスペースに置き換えて、UTF-8としてファイルを保存すると、Mountain Lion(10.8.2)で動作しました

この仕事が他の誰かのためになることを願っています。

1
victmo

/ etc/hostsをSublimeTextで編集しましたが、同じ問題が発生しました。/etc/hostsファイルをviまたはnanoで編集して保存しようとすると、修正されました...

0
Helmut

私も同じ問題を抱えてる。新しいMacラップトップをセットアップしただけで、古いものから移行するまで機能していました。現在、ping localhostは解決できません。どこかで変更した設定に違いないけど、どこかわからない….

「ローカルホストにpingする」ことを発見しました。動作します。末尾にドットを追加することは、他の検索ドメインで「localhost」という名前の検索をバイパスすることを意味します。かっこいいですが、/ etc/hostsエントリが機能しない理由がまだわかりません...

編集:解決しました。

bash-3.2# dscl . read /Hosts/localhost    
AppleMetaNodeLocation: /Local/Default
RecordName: localhost
RecordType: dsRecTypeStandard:Hosts
bash-3.2# ping localhost
ping: cannot resolve localhost: Unknown Host
bash-3.2# dscl . append /Hosts/localhost IPAddress 127.0.0.1
bash-3.2# dscl . read /Hosts/localhost
AppleMetaNodeLocation: /Local/Default
IPAddress: 127.0.0.1
RecordName: localhost
RecordType: dsRecTypeStandard:Hosts
bash-3.2# 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.083 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.140 ms

出来上がり!

どういうわけか、ディレクトリサービスレコードは/ etc/hostsファイルと同期していませんでした。また、ディレクトリサービス構成にIPアドレスがない場合、名前を解決しようとすると、DNSを要求するmDNSResponderに移動します。

0
Matt Connolly

サービスの開始時にすべてのエラーがコンソールにスローされるわけではないため、Apacheエラーログを必ず読んでください。構文に問題がない場合でも、問題が発生する可能性があります。

デフォルトでは、これらは/ var/log/Apache2 /に保存され、ログファイルはerror.logです。

私はまったく同じ問題を抱えていました。ホストを解決でき、Apacheはコンソールに問題を通知しませんでした。単純な「問題」は、外付けドライブを交換した後、error.logがvhost-configurationを定義できなかったことです。

0
Markus Zeller