OS X 10.10.1 / etc / hosts&/ private / etc / hostsファイルは無視され、解決されません


40

タイトルが示すように、os x 10.10.1を実行しています。私は私のhostsファイルにエントリを持っており、行った場合digまたはnslookupそれはまださえフラッシュさまざまなキャッシュしようとした後、私のhostsファイルにあるものとは異なるIPを示します。

私は次のことを試しました..

  1. 次を実行してmdnsおよびudnsキャッシュをフラッシュします。
    1. sudo discoveryutil mdnsflushcache;
    2. sudo discoveryutil udnsflushcaches;
  2. フラッシュを使用して dscacheutil -flushcache
  3. discoveryd.plistファイルを リロードする
    1. sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist
    2. sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist

ホストファイルは次のようになります。

% cat /private/etc/hosts
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##

127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0 localhost
166.78.60.102   admin.devsite1.com

3
Yosemiteは以前と同じようにホストを使用していないようです。同じ方法でキャッシュをフラッシュすることもありません。また、mDNSが後部座席に座ります-これは、件名に関するおしゃべりがたくさんあります-forums.macrumors.com/showthread.php?t=1741422 編集 ahh ...すでにazchipka.thechipkahouse.com/に到達し
鉄人

ありがとう、ええ、私はすでにそれを読んだ..これがos xがどうなるかというと..その
ぎこちない

1
Macのホストに依存する必要がないのは嬉しいです。それをする必要があるとき、私は常にWinでプレーする傾向があります-それは今ヨセミテから私を遠ざける唯一のものではありませんが:(
鉄人14年

ええ、私のrmbpは、残念ながらWeb開発/ sysadminに使用する主要な開発マシンであり、これを把握する必要があります。そうでなければ、mavericksにロールバックします。
gorelative 14年

他の人は自分のワークステーションで単にipv6を無効にしたいかもしれませんが、キーを説明するこれを見つけました:technipages.com/how-to-disable-ipv6-in-macos-sierra-しかし、nicでipv6を無効にしても、問題は解決しませんでした
ジェームズTスネル

回答:


61

Yosemite(バージョン10.10.1)では、/ private / etc / hostsは正常に機能しているようです。キャッシュをフラッシュしたりリセットしたりする必要はありませんdiscoveryd(YosemiteのDNSリゾルバー)。変更を保存した直後にファイルsudo fs_usage | grep private/etc/hostsdiscoveryd読み取ることを示しています。

[更新:discoverydOS Xバージョン10.10.0-10.10.3でのみ使用されていました。以前のバージョンと後のバージョンの両方でmDNSResponder、同じ機能を提供します...また、/ etc / hostsの変更にすぐに気付きます。]

しかし、dignslookup、およびhostそれらのシステムのリゾルババイパスと生のDNSルックアップを行うので、それのエントリを表示されません。彼らはいつもこれをやってきたので、ヨセミテではこれは新しいものではありません。OS Xのシステムリゾルバーを介してルックアップを行う「公式の」方法は、以下を使用することdscacheutilです。

dscacheutil -q host -a name www.example.com

...しかし、それは非常に冗長であるため、ping代わりに使用する傾向があります(そして、最初の行を見て、pingを実行しているIPをリストします)。10.9以降では、ネットワークユーティリティの[ルックアップ]タブを使用することもできます(それより前でdigは、システムルックアップポリシーをバイパスしていました)。

ところで、鉄人がリンクしたマクラメスレッドには注意を払ってください。何をしているのかよくわからず、自分の間違いの結果を誤解している人でいっぱいです。


1
私は、この投稿の後に感謝ゴードンは、ええ私が実現dignslookupおよびhostローカルDNS解決を使いません。ことでは言っ/etc/hosts作品予想通り...
gorelative

自分の/etc/hostsファイルまたはファイルを更新しても、コマンドやその他のコマンド/private/etc/hostsはまったく反映されませんdscacheutil -q host -a name www.example.com
Trip

3
@Tripは、追加したエントリが適切にフォーマットされていることを確認します。IPアドレスの後にスペースまたはタブ、名前、行末の改行が続きます。hostsファイルを印刷しcat -vet /etc/hostsて、通常は見えない文字を表示してみてください。各行は、「127.0.0.1 ^ Inetsecuritybureau.com $」(「^ I」はタブ、「$」は改行)または「127.0.0.1 netsecuritybureau.com $」のようになります。「$」の直前に「^ M」(キャリッジリターン)が表示される場合は、DOS / Windows形式のテキストがあり、キャリッジリターンを削除する必要があります。
ゴードンデイヴィソン

ああ、助けてくれてありがとう。タブまたはスペースであることを確認するために、あなたのリードに従いました。私の行は正確に読み取ります:M127.0.0.1^Iyoutube.com^M^M、私はそれから実行しdscacheutil -flushcache; sudo killall -HUP mDNSResponder、youtube.comに移動するとき、それはまだlocalhostでなくyoutubeを表示します。
トリップ

@Tripコマンドラインのような非表示の文字をクリーンアップする方法はいくつかありますが、GUIエディターのTextWranglerをお勧めします-表示メニュー>テキスト表示>非表示の表示を使用してこれらのようなものを表示(および編集)しますキャリッジリターン。また、無料で、非表示のファイルとフォルダー(/ etcなど)を表示/開くオプション、および管理者権限を使用してシステムファイルを編集するオプションがあります。
ゴードンデイヴィソン

17

私はこの問題に別のしわを発見しました。

私が抱えていた問題を解決するために、IPv6スタイルのホストファイルエントリを追加する必要がありました。

IPv6ネットワーク構成がセットアップされている場合、SafariはIPv4エントリを見落とすようです。

/ etc / hostsのIPv6 localhostアドレスに解決される重複エントリを追加する必要があります。

IPv4エントリー 127.68.56.101 facebook.com

例IPv6エントリ fe80::1%lo0 facebook.com


1
私は成功した最短IPアドレスを使用して仕事にこの1つを得たことを注意:0.0.0.0と:: 1
ベン・モロー

おかげで、私のためにも働いた。アップグレード後にvhosts / apacheの設定を復元した後、頭をかきました。感謝。
ギャビン

うん、これも私のためにそれを修正しました。
advert2013

1

テキスト編集で編集した後、hostsファイルは無視され続けました。行末を修正するいくつかの方法を試しましたが、上記のJB Smithsの回答に続いて、IPv6エントリを既存のIPv4エントリに追加しましたが成功しませんでした。私の会社がIPv6をサポートしていれば、彼の答えはうまくいくと思います。

私のために働いた唯一の解決策は、この無料のGUIプラグインを使用してhostsファイルを編集することです。

https://github.com/specialunderwear/Hosts.prefpane/blob/master/README.mdown


1

この記事は、Yosemite 10.10.5がhostsファイルの変更を反映しておらず、修正することしかできないために見つかりました。(リブートし、キャッシュをフラッシュしてみました。インターネットなどで見つけられるあらゆるアドバイスに従いました)。

答えはとても単純で、実際には恥ずかしいですが、共有したいと思いました。texteditを使用してhostsファイルを編集しましたが、hosts.txtとしてファイルを保存する自由がありました。通常、このようなことに気づきますが、Yosemiteの新規インストールを使用しており、「すべてのファイル拡張子を表示する」をまだオンにしていないため、デスクトップで表示したときにファイル名が変更されたようには見えませんでした。

したがって、この投稿を読んでいるほとんどの人はおそらくすでにこれを行っているでしょうが、hostsファイルが実際に存在し、hosts.txtに置き換えられていないことを確認してください

ファイル名拡張子の表示をオンにするには、[ Finder]> [設定]> [すべてのファイル拡張子を表示]に移動します

ファイルに.txt拡張子を追加することからの停止テキストエディットするには、テキスト編集中のファイルを開いて、選択したファイル]> [名前を付けて保存(あなたが表示されない場合は名前を付けて保存 ]メニュー項目を、オプションキーダウンホールドあなたがクリックした後、ファイルを、そして名前を付けて保存 SHOULDメニューに表示されます)。オプションを探します拡張機能が提供されていない場合は、「。txt」使用して選択を解除します。


0

Appleはこれをバグとして認識すると思います(本日提出しました)。の新しいエントリ/etc/hostsが選択されていることに気付きましたが、既存のエントリへの変更は無視されます。だから...エントリのホスト名を変更すると(たとえばweb1からweb1a)、回避策が提供されました。

古い/ etc / hostsエントリ: 54.173.164.18 web1

新しい/ etc / hostsエントリ: 54.174.161.12 web1a


sudo dscacheutil -flushcache-ディレクトリサービスキャッシュをフラッシュします。
ケビンブックス

0

私の場合、.ssh / configをセットアップします

#Host *.ourdemo.ca
  User jumpy
  ProxyCommand ssh ourjumpbox.ca -W %h:%p

構成ファイルの機能と、これが質問にどのように関連しているかを説明していただけますか?
クラノマス

1
問題は、ローカルの/ etc / hostsファイルのエントリが無視される理由でした。私の場合、プロキシボックス(ourjumpbox.ca)を介してすべてのトラフィックを一連のマシン(* .ourdemo.ca)にトンネリングするよう指示されたため、無視されていました。SSHは接続を素直にプロキシし、ローカルの/ etc / hostsファイルではなく、アドレスの解決に使用されるプロキシの/ etc / hostsファイルになるようにしました。
マーティンクリーバー

0

私は非常に似た問題を抱えていました。 /etc/hosts

ドメインが含まれる-ようにmy-domain.com

言うに関係なく、MS Outlookの- -アスキー変換の問題は、送信者の電子メールクライアントであることが判明-長いに-Microsoftが置換するその埋め込まれた自動補正を使用することをそんなに愛している文字-自分で-

hostsファイルは完璧に見え、この問題を見つけるのは困難でした。行を削除して手動で書き戻したとき、それらは動作し始めました。

これを理解するのはとても難しかったので、MacOSクライアントがhostsファイルを無視して名前解決に直接スキップする理由を深く掘り下げました。


0

この問題が発生しました。これは、住所を書き込むのではなく、hipchatからコピー/貼り付けを行うことによって発生しました。

コピー処理により、スペースではなくいくつかの不良文字が追加され、問題が発生しました。

行を書き換えることで問題が解決しました。


0

私はアプリSelfControl(実際にはmacOS mojave 10.14.4上)をかなり長い間使用しており、SelfControlがどのようにエントリを行っているかを確認するために考えていました。

0.0.0.0 xyz.com
:: xyz.com
0.0.0.0 www.xyz.com
:: www.xyz.com

これに基づいて、すべてをローカルホストに変更したので、

127.0.0.1
::1

動作します。


これがどのように質問に答えるかはわかりません。質問に関係のない、単なるランダムな観察のようです。
鉄人

1
正確に何を変更したか、それが質問にどのように関係するかについての詳細を追加できますか
nohillside

問題は、10.10.1以降、hostsファイルが無視される理由でした...手動のエントリは無視されますが、アプリのSelfControlを介して作成されたエントリは意図したとおりに機能していました。以前のエントリで欠けていたのは、2番目の部分で、ドメインが「www。」でした。すべてが10.10.1より前に正常に動作していたため、私のエントリで他に何が間違っていたかを把握できませんでした。
needlol
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.