簡體   English   中英

"即使在殺死 mDNSResolver 之后,Mac OSX 更改 \/etc\/hosts 也沒有效果"

[英]Mac OSX changing /etc/hosts has no effect even after killing mDNSResolver

我在 Windows (10) 中沒有遇到類似的問題,而且我在文檔上搜索的任何內容似乎都沒有表明為什么,如果這不起作用,就是這種情況

  • 我打開終端並編輯 \/etc\/hosts (我在 PC 上做過很多次,幾年前也在 OSX 上做過)<\/li>
  • 如果這不起作用,我只是為了笑,我輸入sudo killall -HUP mDNSResponder<\/code><\/li>
  • 然后為了更多的笑容,我重新啟動<\/li><\/ul>

    這完全沒有效果。 誰能指出我為什么? 謝謝。


    更新<\/strong>:這件事令人尷尬的事實是,我在\/etc\/hosts<\/code>中輸入的行是相反的,即域優先,如:

    然而,接受的答案寫得很好,值得贊賞。

    "

我發現在 macOS (/OS X) 上使用 /etc/hosts 有兩個常見問題:

  • 格式不正確:/etc/hosts 文件中的每個條目必須是一個 IP 地址,后跟一個空格或制表符,然后是名稱,然后是行尾的換行符。 嘗試使用 cat -vet /etc/hosts 打印主機文件以使通常不可見的字符可見。 每行應如下所示:

     127.0.0.1^Iwww.example.com$ 127.0.0.1 www.example.com$

    (“^I”是制表符,“$”是行尾的換行符。)如果條目列出了多個名稱(也用空格或制表符分隔),也可以。

    如果您在“$”之前看到“^M”(回車),則您有 DOS/Windows 格式的文本,您需要刪除回車。

  • 不正確的測試:不要使用命令行工具dighostnslookup ,因為它們都直接測試 DNS,因此繞過 /etc/hosts 文件。 瀏覽器有時會緩存內容,這可能會產生誤導性的結果。 測試系統名稱解析系統的“正確”方法是使用dscacheutil命令:

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

    ...但由於這很煩人,我傾向於只使用ping ,然后查看它說要測試的地址。

我遇到了這個線程,試圖在 macOS Catalina 上解決同樣的問題,但沒有成功。 這是因為 macOS Catalina 有另一件事要做; 如果您以 root 用戶身份更改主機文件,它只會使主機文件中的更改生效(這不是使用 sudo 命令完成的)!!

默認情況下,您的系統上沒有 root 用戶,因此這里有一個包含逐步指南的鏈接: https : //support.apple.com/en-us/HT204012

然后我能夠:

su
nano /etc/hosts

更多信息: https : //discussions.apple.com/thread/250805304

以下步驟對我有用

  1. 刷新 DNS sudo killall -HUP mDNSResponder (或在活動監視器中殺死 DNS 並讓它重新加載)

2.更改/etc/host文件的讀寫權限應該是-rw-r--r-- 使用命令$ sudo chmod g+r /etc/hosts和$ sudo chmod o+r /etc/hosts

  1. 添加條目你想在主機文件中添加 ipxxx.xx.xx.com

  2. 最后移動了這兩行 255.255.255.255 broadcasthost ::1 localhost Administrators-MacBook-Pro.local

  3. 再次執行第 1 步

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM