我如何確定 OSX 正在使用、儲存和分發的所有 DNS?

我如何確定 OSX 正在使用、儲存和分發的所有 DNS?

當我從一個站點到另一個站點時,我在整個工作日連接到多個網絡,並注意到這些 LAN 使用不同的 DNS 並分發給我的系統。如果我在「安全性」LAN 上,我可以信任 DNS;然而,有時我必須使用不受信任的網站…例如餐廳的免費 WiFi 服務。因此,我想更了解我的系統如何更新設定。在每個站點,我注意到 OSX 網路設定視窗中列出的 DNS 發生了變化。當然,當我在家庭 LAN 上時,我會看到我熟悉的 DNS。當我在家時,我更喜歡始終使用這些 DNS。

到目前為止,我一直相信 OSX 在我在家時會自動完全切換到我的網絡,但最近的經驗告訴我,它並沒有完全做到這一點。也就是說,它似乎保留了先前取得的 DNS,即使它們沒有列在 DNS 標籤的 DNS 伺服器清單下的網路設定中。

我在設定新的 WiFi 印表機時發現了這一點。我瀏覽了印表機手冊,感覺自己足夠了解和精明,我可以透過跳線將它的乙太網路直接連接到我的 MacBook 乙太網路連接埠。我訪問了它的配置頁面,將其設定為連接到我的 WiFi。在更改設定之前,我列印了預設的網路配置資訊。我很驚訝它已經從我的 MacBook 中獲取了一些東西。我已經很驚訝我甚至不需要手動將 MacBook 上的乙太網路配置為印表機的預設網路。無論如何,真正突出的設定之一是它選擇了輔助 DNS 伺服器設定…一個 IP,這是我從我經常使用的 LAN 之一中熟悉的。

我能得出的唯一結論是,OSX 正在維護 DNS 的歷史記錄,也許可以作為後備;但是,我立即檢查了網路設置,發現 AirPort 或 Eithernet 都沒有列出提供給印表機的 DNS 伺服器。

是否有命令列方法可以檢查我的系統目前使用的 DNS?

OSX 說它正在使用我的 DNS 伺服器,但我怎麼能 100% 確定呢? OSX 顯然保留了甚至奇怪地將 IP 分發給印表機?

答案1

自 Mac OS X 10.6.3 起,Apple 決定不跟隨系統偏好設定中指定的 DNS 伺服器的清單順序,但要確定可用的最快的 DNS 伺服器,然後使用它。雖然如果你信任你所在的網絡,這可能完全沒問題(我猜蘋果認為這是給定的),但在其他情況下,這可能是一個安全問題。

若要查看 DNS 伺服器(和搜尋網域)的搜尋順序,請執行:scutil --dns

查看您是哪個 DNS 伺服器目前實際使用的,例如nslookup apple.com從終端運行。

此外,這篇 CNET 文章引導您將 DNS 搜尋順序變更回「嚴格排序」。

答案2

您可以在系統偏好設定 > 網路 > [無論您目前排名最高的活動介面是什麼,可能是「乙太網路」或「AirPort」] > 進階... > DNS 中查看目前的 DNS 伺服器。

cat /etc/resolv.conf如果你(注意“resolv”中故意缺少“e”),你會看到同樣的事情。

Bonjour 也可能會做 Wide Area Bonjour。若要查看哪些網域用於 Wide Area Bonjour,請執行,然後在網域清單出現後dns-sd -F點擊(否則它將無限期地保持運行,觀察清單中的變更)。^C

Mac OS X 不會將 DNS 伺服器位址「分發」給其他計算機,除非您啟動其 DHCP 伺服器,人們啟動 DHCP 伺服器的唯一方法是在系統偏好設定的「共用」面板中開啟 Internet 共用。如果您讓 Internet 共用保持運行,它可能會給出自己的 NAT 專用 IP 位址 (192.168.2.1) 作為 DNS 伺服器位址,並且它可能正在執行 DNS 代理。或者它可能已經給出了它在 NAT 公共介面(其“上游”介面;“共享您的連接來自:”介面)上使用的最後一個 DNS 伺服器位址。因此,如果您曾經使用過公共 Wi-Fi 網絡,並使用從 AirPort 到乙太網路的互聯網共享功能,透過 Mac 將乙太網路連接的電腦連接到互聯網,那麼就可以解釋您所看到的情況。

如果您沒有啟用(選取)Internet 共享,而且您沒有手動啟動 DHCP 伺服器,那麼您的 Mac 幾乎肯定沒有將該 DNS 伺服器位址提供給您的印表機。

您看到您的印表機到底使用哪個 DNS 伺服器位址?例如,如果您的印表機為自己分配了一個IPv4 鏈路本地(169.254.xx) 位址,那麼它可能會在該欄位中顯示自己的位址,以此來了解它應該依賴自己(可能是Bonjour 多播DNS ) ) 用於 DNS 查找。

相關內容