服务器DNS查看主要有两种場景:Windows Server使用ipconfig /all命令查看所有網路介面的DNS伺服器地址;Linux伺服器則透過cat /etc/resolv.conf或nmcli dev show等指令取得當前DNS設定,不同作業系統與網路管理工具會影響查詢指令的選擇,但核心目標都是讀取系統的DNS解析組態。
服务器dns查看命令:Windows Server 與 Linux 的實戰對比
Windows Server 的 DNS 查詢指令
在 Windows 伺服器環境中,檢視 DNS 設定最直接的方式是使用命令提示字元或 PowerShell。ipconfig /all 是最經典的指令,它會列出所有網路介面的詳細資訊,包括 DNS 伺服器、尾碼搜尋清單等。
- 基礎操作:以系統管理員身份開啟命令提示字元,輸入
ipconfig /all,在輸出中找到「DNS 伺服器」欄位,即可看到 IPv4 與 IPv6 的 DNS 地址。 - PowerShell 替代方案:對於需要自動化腳本或更結構化輸出的場景,可以使用
Get-DnsClientServerAddress,這個指令會回傳物件,方便後續處理,例如只過濾特定介面的 DNS 設定。 - 圖形介面:透過「網路和共用中心」→「變更介面卡設定」→右鍵選取網卡→「內容」→「網際網路通訊協定第4版(TCP/IPv4)」→「內容」,也能看到手動設定的DNS,但若使用DHCP自動取得,則需透過指令才能確認當前生效的DNS位址。
Linux 伺服器的 DNS 查詢方法
Linux 發行版查看 DNS 的指令因網路管理服務而異,傳統的 /etc/resolv.conf 檔案是大多數系統的 DNS 解析器設定檔,但現代系統常由 systemd-resolved、NetworkManager 或 netplan 管理,因此需要搭配對應工具。
- 傳統方法:
cat /etc/resolv.conf可直接顯示名稱伺服器,但注意,此檔案可能被其他服務覆寫,僅反映當前生效的DNS之一。 - NetworkManager 命令:
nmcli dev show <介面名稱>或
nmcli con show <連線名稱>,輸出中會包含 DNS 設定。nmcli是 Red Hat 系列及許多主流發行版的標準工具。 - systemd-resolved:若使用
systemd-resolved,可透過resolvectl status查看每個介面的 DNS 伺服器,以及全域設定。resolvectl dns則直接顯示指定介面的DNS。 - 其他工具:
host、nslookup或dig可用來測試實際解析結果,但並非直接查看設定,若要確認伺服器目前使用的DNS解析器,還是以讀取組態檔案或系統狀態為主。
服务器dns地址怎么查:圖形化工具與指令碼輔助
伺服器管理員的圖形化捷徑
對於不熟悉命令列的運維人員,圖形化工具能快速取得DNS資訊,Windows Server 的「伺服器管理員」本身不直接顯示DNS設定,但可以透過「DNS管理員」嵌入式管理單元 (dnsmgmt.msc) 來管理角色,但這僅限於伺服器本身擔任DNS伺服器的情況,若要查看用戶端設定,還是得回到網路介面設定。
- Windows Admin Center:這是微軟提供的瀏覽器式管理工具,可以在「網路」頁籤中看到每個介面的DNS伺服器位址,省去登入命令列的麻煩。
- Linux 桌面環境:若伺服器安裝了桌面環境(如Ubuntu Server的GNOME),可以在「設定」→「網路」→「齒輪圖示」→「IPv4」或「IPv6」標籤頁中查看DNS,但多數伺服器為無頭模式,故指令列仍是主流。
遠端批量查詢腳本
當管理多台伺服器時,逐台登入效率太低,可以透過 PowerShell 的 Invoke-Command 或 SSH 搭配腳本批量收集DNS設定。
- PowerShell 遠端:
Invoke-Command -ComputerName Server01,Server02 -ScriptBlock {Get-DnsClientServerAddress | Select-Object InterfaceAlias, ServerAddresses}可一次取得多台Windows伺服器的DNS資訊。 - Linux 透過 Ansible:撰寫簡單的Playbook,使用
slurp模組讀取
/etc/resolv.conf,或使用command模組執行nmcli,Ansible 的setup模組(facts)也會收集DNS資訊,但可能不完整,需確認版本。
服务器dns配置查看方法:進階技巧與常見陷阱
區分動態與靜態 DNS 設定
伺服器可能透過 DHCP 自動取得 DNS 伺服器,也可能由管理員手動指定。ipconfig /all 會清楚標示「DHCP 已啟用」與「DNS 伺服器」,若看到 DNS 位址來自 DHCP 但實際需要使用固定 DNS(如內部網域控制器),則需變更為靜態。
- Windows 確認方式:執行
ipconfig /all,若「DHCP 已啟用」為「是」,則DNS可能來自DHCP;若為「否」,則DNS為手動設定。 - Linux 確認方式:檢視
/etc/resolv.conf註解行,有時會標註# Generated by NetworkManager或# dhcpcd,表示由動態程式管理。nmcli輸出中ipv4.dhcp-options可看到DHCP取得的DNS參數。
常見陷阱:暫存與鎖定檔案
DNS 設定有時會因系統服務而暫時鎖定,Linux 的 systemd-resolved 會鎖定 /etc/resolv.conf 為符號連結,直接編輯該檔案可能無效,正確方式是透過 resolvectl 或修改 netplan YAML 設定。
- Windows 快取:
ipconfig /displaydns可查看DNS解析快取,但這不是伺服器設定的DNS位址,而是已解析過的記錄,混淆這兩個概念是常見錯誤。 - 多重網路介面:伺服器若有多張網卡(如管理網卡、業務網卡),每張卡可能有不同的DNS設定,務必確認正在查看的是正確的介面,否則會誤判上網行為。
業界公認的檢查流程
行業共識認為,定期檢查伺服器DNS配置是確保網路穩定性的基本操作之一,建議的流程如下:
- 登入伺服器,以系統管理員或root權限執行命令。
- 列出所有啟用的網路介面。
- 針對每個介面,記錄其IPv4與IPv6的DNS伺服器。
- 比對是否符合預期(例如公司內部DNS主機、備援DNS位址)。
- 若使用DHCP,確認DHCP伺服器派發的DNS是否正確,必要時改為靜態設定。
伺服器DNS查看常見問題
問題1:執行 ipconfig /all 後沒有看到DNS伺服器,為什麼?
這通常發生在網路介面卡未正確取得IP設定時,可能原因是DHCP失敗、或是網卡被停用,請先確認介面狀態是否為「已啟用」,並執行 ipconfig /renew 重新取得租約,若仍無DNS,則可能是該介面未設定DNS(例如僅用於區域通訊的虛擬網卡),在Windows Server中,某些虛擬交換器網卡可能不會顯示DNS伺服器,這是正常行為。
問題2:Linux伺服器修改 /etc/resolv.conf 後重開機就還原,如何永久設定?
這是因為現代Linux發行版使用 systemd-resolved、NetworkManager 或 netplan 管理DNS,直接編輯 /etc/resolv.conf 是暫時的,重啟服務或重新開機後會被覆寫,正確做法是根據使用的網路管理工具修改對應設定檔:例如在Ubuntu使用 netplan 時,編輯 /etc/netplan/.yaml 中的 nameservers 區塊;在RHEL/CentOS使用 nmcli 或修改 /etc/sysconfig/network-scripts/ifcfg- 檔案中的 DNS1 與 DNS2 變數,再重啟網路服務。
問題3:查看伺服器DNS時,出現多個IP位址,哪一個是優先使用的?
視作業系統而定,Windows Server預設使用第一個清單的DNS伺服器,若無回應則依序嘗試後續清單,Linux的 resolv.conf 中 nameserver 的順序即為查詢順序,但有些系統(如 glibc 解析器)會輪詢或使用 timeout 與 attempts 參數控制,若要確認實際解析行為,可使用 dig +trace 或 nslookup -debug 觀察查詢路徑,業內專家指出,通常第一個DNS伺服器是主要解析目標,因此應將最快且最穩定的DNS置於首位。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/499038.html



