<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>DNS設定反查與偵錯：dig指令深入使用</title>
        <description>一、目的
當DNS查詢出現錯誤無法解析出正確IP，經由以下方式，可以查出於整個DNS查詢路徑中，錯誤出在那一階段的DNS主機以及DNS記錄錯誤為何。

二、原理與流程
以下我們以查詢 www.ntu.edu.tw 之 IP 作為例子說明查詢的原理與流程。

1. 慣用DNS伺服器：作業系統之DNS查詢首先從詢問「慣用DNS伺服器」開始，一般我們會設定為 Google 的 DNS (8.8.8.8) 或者中華電信的 DNS (168.95.1.1) [1]。並且，可以由以下指令查詢：
$ cat /etc/resolv.conf

2. 決定查詢路徑：作業系統會從網域的「最後段」一路反向查詢到「最前段」。例如，以網域 www.ntu.edu.tw 為例，首先會查詢負責回應 tw 網域DNS記錄的主機為何，再接著查詢負責 edu 網域的主機，而後是負責 ntu 網域的主機。最後，再詢問負責 ntu 網域的主機，網域名稱 www 的主機 IP 為何。也就是查詢路徑為：

tw → edu → ntu → www

三、反查指令與步驟
1. DNS 的查詢 (反查) 以 dig 指令進行。首先，我們詢問「慣用DNS伺服器」(例如 8.8.8.8)：網域 tw 的「網域名稱解析主機」(Name Server, NS) 為何？查詢指令 dig 以接近直覺的格式達成上述目的：
$ dig @8.8.8.8 tw ns

其中，指令中的「ns」，指的是查詢種類 (type) 為「Name Server」。還可以查詢的種類包括 MX (電子郵件)、A (IPv4位置)、AAAA (IPv6位置)。查詢結果如下：



2. 由上面的結果我們可以看到，負責回應 tw 網域的主機共有11個 (c.dns.tw, a.dns.tw,..., anytld.apnic.net)。我們接著詢問第一個主機 (c.dns.tw) 網域 gov.tw 的負責主機為何：
$ dig @c.dns.tw gov.tw ns



首先我們可以看到負責 edu.tw 網域的名稱主機記錄有 d.twnic.net.tw 等5筆。接著，是上述名稱主機對應的 IP (IPv4 與 IPv6 / A Record 與 AAAA Record)。

3. 我們再接著詢問名稱主機 d.twnic.net.tw 網域ntu.edu.tw 的負責主機為何：
$ dig @d.twnic.net.tw edu.gov.tw ns



[1] 常用公共網域名稱解析主機
 (1) Cloudflare 1.1.1.1 
 (2) Google 8.8.8.8
 (3) IBM 9.9.9.9
 (4) 中華電信 168.95.1.1 / 168.95.192.1

線上反查工具 (DNS Delegation)：
https://simpledns.plus/lookup-dg</description>
        <link>http://mepopedia.com/forum/read.php?135,90293,90293#msg-90293</link>
        <lastBuildDate>Tue, 25 Aug 2026 14:02:43 +0800</lastBuildDate>
        <generator>Phorum 5.2.7</generator>
        <item>
            <guid>http://mepopedia.com/forum/read.php?135,90293,90293#msg-90293</guid>
            <title>DNS設定反查與偵錯：dig指令深入使用</title>
            <link>http://mepopedia.com/forum/read.php?135,90293,90293#msg-90293</link>
            <description><![CDATA[一、目的<br />
當DNS查詢出現錯誤無法解析出正確IP，經由以下方式，可以查出於整個DNS查詢路徑中，錯誤出在那一階段的DNS主機以及DNS記錄錯誤為何。<br />
<br />
二、原理與流程<br />
以下我們以查詢 www.ntu.edu.tw 之 IP 作為例子說明查詢的原理與流程。<br />
<br />
1. 慣用DNS伺服器：作業系統之DNS查詢首先從詢問「慣用DNS伺服器」開始，一般我們會設定為 Google 的 DNS (8.8.8.8) 或者中華電信的 DNS (168.95.1.1) [1]。並且，可以由以下指令查詢：<br />
<div style="background:#ddd;padding-left:1em;margin-top:0.5em">$ cat /etc/resolv.conf</div>
<br />
2. 決定查詢路徑：作業系統會從網域的「最後段」一路反向查詢到「最前段」。例如，以網域 www.ntu.edu.tw 為例，首先會查詢負責回應 <b>tw</b> 網域DNS記錄的主機為何，再接著查詢負責 <b>edu</b> 網域的主機，而後是負責 <b>ntu</b> 網域的主機。最後，再詢問負責 <b>ntu</b> 網域的主機，網域名稱 <b>www</b> 的主機 IP 為何。也就是查詢路徑為：<br />
<br />
<div style="text-align:center"><b>tw → edu → ntu → www</b></div>
<br />
三、反查指令與步驟<br />
1. DNS 的查詢 (反查) 以 <b>dig</b> 指令進行。首先，我們詢問「慣用DNS伺服器」(例如 8.8.8.8)：網域 tw 的「網域名稱解析主機」(Name Server, NS) 為何？查詢指令 <b>dig</b> 以接近直覺的格式達成上述目的：<br />
<div style="background:#ddd;padding-left:1em;margin-top:0.5em">$ dig @8.8.8.8 tw ns</div>
<br />
其中，指令中的「ns」，指的是查詢種類 (type) 為「Name Server」。還可以查詢的種類包括 MX (電子郵件)、A (IPv4位置)、AAAA (IPv6位置)。查詢結果如下：<br />
<br />
<img src="//mepopedia.com/files/dig tw.jpg"><br />
<br />
2. 由上面的結果我們可以看到，負責回應 <b>tw</b> 網域的主機共有11個 (c.dns.tw, a.dns.tw,..., anytld.apnic.net)。我們接著詢問第一個主機 (c.dns.tw) 網域 <b>gov.tw</b> 的負責主機為何：<br />
<div style="background:#ddd;padding-left:1em;margin-top:0.5em">$ dig @c.dns.tw gov.tw ns</div>
<br />
<img src="//mepopedia.com/files/dig edu.tw.jpg"><br />
<br />
首先我們可以看到負責 <b>edu.tw</b> 網域的名稱主機記錄有 d.twnic.net.tw 等5筆。接著，是上述名稱主機對應的 IP (IPv4 與 IPv6 / A Record 與 AAAA Record)。<br />
<br />
3. 我們再接著詢問名稱主機 d.twnic.net.tw 網域<b>ntu.edu.tw</b> 的負責主機為何：<br />
<div style="background:#ddd;padding-left:1em;margin-top:0.5em">$ dig @d.twnic.net.tw edu.gov.tw ns</div>
<br />
<img src="//mepopedia.com/files/dig ntu.edu.tw.jpg"><br />
<br />
[1] 常用公共網域名稱解析主機<br />
 (1) Cloudflare 1.1.1.1 <br />
 (2) Google 8.8.8.8<br />
 (3) IBM 9.9.9.9<br />
 (4) 中華電信 168.95.1.1 / 168.95.192.1<br />
<br />
線上反查工具 (DNS Delegation)：<br />
https://simpledns.plus/lookup-dg]]></description>
            <dc:creator>HP</dc:creator>
            <category>Linux系統管理</category>
            <pubDate>Fri, 17 Jan 2020 09:06:01 +0800</pubDate>
        </item>
    </channel>
</rss>
